At Thu, 23 Jul 2009 11:02:42 -0400, Sean Boudreau <seanb%qnx.com@localhost> wrote: Subject: soreserve() return value > > Index: sys/kern/uipc_socket2.c > =================================================================== > RCS file: /cvsroot/src/sys/kern/uipc_socket2.c,v > retrieving revision 1.102 > diff -u -r1.102 uipc_socket2.c > --- sys/kern/uipc_socket2.c 9 Apr 2009 00:43:38 -0000 1.102 > +++ sys/kern/uipc_socket2.c 23 Jul 2009 14:05:13 -0000 > @@ -279,7 +279,10 @@ > so->so_rcv.sb_mowner = head->so_rcv.sb_mowner; > so->so_snd.sb_mowner = head->so_snd.sb_mowner; > #endif > - (void) soreserve(so, head->so_snd.sb_hiwat, head->so_rcv.sb_hiwat); > + if (soreserve(so, head->so_snd.sb_hiwat, head->so_rcv.sb_hiwat) != 0) { > + soput(so); > + return NULL; > + } > so->so_snd.sb_lowat = head->so_snd.sb_lowat; > so->so_rcv.sb_lowat = head->so_rcv.sb_lowat; > so->so_rcv.sb_timeo = head->so_rcv.sb_timeo; It does look like FreeBSD's sonewconn() checks the return value of soreserve() these days, though their code has transmuted quite a bit beyond just doing that.... -- Greg A. Woods Planix, Inc. <woods%planix.com@localhost> +1 416 218-0099 http://www.planix.com/
Attachment:
pgpbILb4nny1j.pgp
Description: PGP signature