On Sat, Aug 27, 2022 at 11:37:14PM +0300, Vitaliy Makkoveev wrote:
> tcp(4) sockets are the only sockets which could have NULL `so_pcb' and
> we handle this case within tcp_rcvd() handler.

OK bluhm@

> Index: sys/kern/uipc_socket.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/uipc_socket.c,v
> retrieving revision 1.285
> diff -u -p -r1.285 uipc_socket.c
> --- sys/kern/uipc_socket.c    26 Aug 2022 16:17:38 -0000      1.285
> +++ sys/kern/uipc_socket.c    27 Aug 2022 20:32:50 -0000
> @@ -1155,7 +1155,7 @@ dontblock:
>               }
>               SBLASTRECORDCHK(&so->so_rcv, "soreceive 4");
>               SBLASTMBUFCHK(&so->so_rcv, "soreceive 4");
> -             if (pr->pr_flags & PR_WANTRCVD && so->so_pcb)
> +             if (pr->pr_flags & PR_WANTRCVD)
>                       pru_rcvd(so);
>       }
>       if (orig_resid == uio->uio_resid && orig_resid &&
> @@ -1520,7 +1520,7 @@ somove(struct socket *so, int wait)
>               m = m->m_next;
>       if (m == NULL) {
>               sbdroprecord(so, &so->so_rcv);
> -             if (so->so_proto->pr_flags & PR_WANTRCVD && so->so_pcb)
> +             if (so->so_proto->pr_flags & PR_WANTRCVD)
>                       pru_rcvd(so);
>               goto nextpkt;
>       }
> @@ -1626,7 +1626,7 @@ somove(struct socket *so, int wait)
>       }
>  
>       /* Send window update to source peer as receive buffer has changed. */
> -     if (so->so_proto->pr_flags & PR_WANTRCVD && so->so_pcb)
> +     if (so->so_proto->pr_flags & PR_WANTRCVD)
>               pru_rcvd(so);
>  
>       /* Receive buffer did shrink by len bytes, adjust oob. */

Reply via email to