diff options
author | alfred <alfred@FreeBSD.org> | 2003-01-05 11:14:04 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2003-01-05 11:14:04 +0000 |
commit | fac9f38e7991a85f4f06ee733f25c665a38c9e1a (patch) | |
tree | 5be27eb737d405a0a88319e035e7f121937329d5 /sys/kern/uipc_socket.c | |
parent | dc4b3da26a98d09a314976ffc3a77a9cf66f31ba (diff) | |
download | FreeBSD-src-fac9f38e7991a85f4f06ee733f25c665a38c9e1a.zip FreeBSD-src-fac9f38e7991a85f4f06ee733f25c665a38c9e1a.tar.gz |
In sodealloc(), if there is an accept filter present on the socket
then call do_setopt_accept_filter(so, NULL) which will free the filter
instead of duplicating the code in do_setopt_accept_filter().
Pointed out by: Hiten Pandya <hiten@angelica.unixdaemons.com>
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r-- | sys/kern/uipc_socket.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 73d9a16..fe8a2e0 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -244,15 +244,9 @@ sodealloc(struct socket *so) (void)chgsbsize(so->so_cred->cr_uidinfo, &so->so_snd.sb_hiwat, 0, RLIM_INFINITY); #ifdef INET - if (so->so_accf != NULL) { - if (so->so_accf->so_accept_filter != NULL && - so->so_accf->so_accept_filter->accf_destroy != NULL) { - so->so_accf->so_accept_filter->accf_destroy(so); - } - if (so->so_accf->so_accept_filter_str != NULL) - FREE(so->so_accf->so_accept_filter_str, M_ACCF); - FREE(so->so_accf, M_ACCF); - } + /* remove acccept filter if one is present. */ + if (so->so_accf != NULL) + do_setopt_accept_filter(so, NULL); #endif #ifdef MAC mac_destroy_socket(so); |