diff options
| author | Robert Drehmel <robert@FreeBSD.org> | 2003-07-17 23:49:10 +0000 |
|---|---|---|
| committer | Robert Drehmel <robert@FreeBSD.org> | 2003-07-17 23:49:10 +0000 |
| commit | 4e19fe1081352c45aa6de13e465e729feab8613c (patch) | |
| tree | af5c6b63b4afd1e633ebf9934eefff4ed33989da /sys/kern/uipc_socket.c | |
| parent | 30c2333b1de418284d242c38e0d7cb63960c931c (diff) | |
Notes
Diffstat (limited to 'sys/kern/uipc_socket.c')
| -rw-r--r-- | sys/kern/uipc_socket.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index f1376f373bf7..0c8571735019 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -1133,8 +1133,14 @@ sorflush(so) socantrcvmore(so); sbunlock(sb); asb = *sb; - bzero(sb, sizeof (*sb)); + /* + * Invalidate/clear most of the sockbuf structure, but keep + * its selinfo structure valid. + */ + bzero(&sb->sb_startzero, + sizeof(*sb) - offsetof(struct sockbuf, sb_startzero)); splx(s); + if (pr->pr_flags & PR_RIGHTS && pr->pr_domain->dom_dispose) (*pr->pr_domain->dom_dispose)(asb.sb_mb); sbrelease(&asb, so); |
