Author: markj
Date: Tue Jul  2 14:24:42 2019
New Revision: 349599
URL: https://svnweb.freebsd.org/changeset/base/349599

Log:
  Fix handling of errors from sblock() in soreceive_stream().
  
  Previously we would attempt to unlock the socket buffer despite having
  failed to lock it.  Simply return an error instead: no resources need
  to be released at this point, and doing so is consistent with
  soreceive_generic().
  
  PR:           238789
  Submitted by: Greg Becker <g...@codeconcepts.com>
  MFC after:    1 week

Modified:
  head/sys/kern/uipc_socket.c

Modified: head/sys/kern/uipc_socket.c
==============================================================================
--- head/sys/kern/uipc_socket.c Tue Jul  2 12:22:54 2019        (r349598)
+++ head/sys/kern/uipc_socket.c Tue Jul  2 14:24:42 2019        (r349599)
@@ -2200,7 +2200,7 @@ soreceive_stream(struct socket *so, struct sockaddr **
        /* Prevent other readers from entering the socket. */
        error = sblock(sb, SBLOCKWAIT(flags));
        if (error)
-               goto out;
+               return (error);
        SOCKBUF_LOCK(sb);
 
        /* Easy one, no space to copyout anything. */
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to