summaryrefslogtreecommitdiff
path: root/sys/kern/uipc_socket2.c
diff options
context:
space:
mode:
authorAlfred Perlstein <alfred@FreeBSD.org>2000-06-22 22:27:16 +0000
committerAlfred Perlstein <alfred@FreeBSD.org>2000-06-22 22:27:16 +0000
commitc6362551506242d9b1d848bfb5bb483e0e695acf (patch)
treec942b304b5fd035b03248a2b1c7465b6304f4824 /sys/kern/uipc_socket2.c
parent903db3b73d6c83b582642ea51825ee52914c05ac (diff)
Notes
Diffstat (limited to 'sys/kern/uipc_socket2.c')
-rw-r--r--sys/kern/uipc_socket2.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c
index 42e02a5e41e7..beb8fe50be0c 100644
--- a/sys/kern/uipc_socket2.c
+++ b/sys/kern/uipc_socket2.c
@@ -432,10 +432,10 @@ sbreserve(sb, cc, so, p)
if ((u_quad_t)cc > (u_quad_t)sb_max * MCLBYTES / (MSIZE + MCLBYTES))
return (0);
delta = (rlim_t)cc - sb->sb_hiwat;
- if (p && delta >= 0 && chgsbsize(so->so_cred->cr_uid, 0) + delta >
- p->p_rlimit[RLIMIT_SBSIZE].rlim_cur)
+ if (p && !chgsbsize(so->so_cred->cr_uid, delta,
+ p->p_rlimit[RLIMIT_SBSIZE].rlim_cur)) {
return (0);
- (void)chgsbsize(so->so_cred->cr_uid, delta);
+ }
sb->sb_hiwat = cc;
sb->sb_mbmax = min(cc * sb_efficiency, sb_max);
if (sb->sb_lowat > sb->sb_hiwat)
@@ -453,7 +453,7 @@ sbrelease(sb, so)
{
sbflush(sb);
- (void)chgsbsize(so->so_cred->cr_uid, -(rlim_t)sb->sb_hiwat);
+ (void)chgsbsize(so->so_cred->cr_uid, -(rlim_t)sb->sb_hiwat, RLIM_INFINITY);
sb->sb_hiwat = sb->sb_mbmax = 0;
}