diff options
| author | kml <kml@NetBSD.org> | 2001-04-30 03:32:56 +0000 |
|---|---|---|
| committer | kml <kml@NetBSD.org> | 2001-04-30 03:32:56 +0000 |
| commit | fc1ebff2b27791f7595b666cfcb49b226fde2caa (patch) | |
| tree | c68aa62ea1c1d2dd62c6eae628f65f8f31a3249d /sys | |
| parent | c6a7588b360269f9a24d230b9abb61b8ec5c0621 (diff) | |
Large values of sb_max would cause an overflow in sbreserve(); cast to
u_quad_t to avoid this. (from FreeBSD uipc_socket2.c v1.19)
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/kern/uipc_socket2.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index b99e7cf8848..5e137c60733 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket2.c,v 1.37 2001/02/27 05:19:15 lukem Exp $ */ +/* $NetBSD: uipc_socket2.c,v 1.38 2001/04/30 03:32:56 kml Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1990, 1993 @@ -375,7 +375,8 @@ int sbreserve(struct sockbuf *sb, u_long cc) { - if (cc == 0 || cc > sb_max * MCLBYTES / (MSIZE + MCLBYTES)) + if (cc == 0 || + (u_quad_t) cc > (u_quad_t) sb_max * MCLBYTES / (MSIZE + MCLBYTES)) return (0); sb->sb_hiwat = cc; sb->sb_mbmax = min(cc * 2, sb_max); |
