summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordoug <>2014-10-11 04:22:03 +0000
committerdoug <>2014-10-11 04:22:03 +0000
commit1856c6ee81193568a82764f32d3723fe08ac8f39 (patch)
treef01a5524428893c4e2bb4585d0bfbc1539ef9a12
parentd8e4c1f27259e44a2831163d60b152c0e6a1e392 (diff)
downloadopenbsd-1856c6ee81193568a82764f32d3723fe08ac8f39.tar.gz
openbsd-1856c6ee81193568a82764f32d3723fe08ac8f39.tar.bz2
openbsd-1856c6ee81193568a82764f32d3723fe08ac8f39.zip
Userland reallocarray() audit.
Avoid potential integer overflow in the size argument of malloc() and realloc() by using reallocarray() to avoid unchecked multiplication. ok deraadt@
-rw-r--r--src/lib/libc/net/getservent.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/libc/net/getservent.c b/src/lib/libc/net/getservent.c
index 7e3293389d..dc43da0a8b 100644
--- a/src/lib/libc/net/getservent.c
+++ b/src/lib/libc/net/getservent.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: getservent.c,v 1.13 2014/09/15 06:15:48 guenther Exp $ */ 1/* $OpenBSD: getservent.c,v 1.14 2014/10/11 04:22:03 doug Exp $ */
2/* 2/*
3 * Copyright (c) 1983, 1993 3 * Copyright (c) 1983, 1993
4 * The Regents of the University of California. All rights reserved. 4 * The Regents of the University of California. All rights reserved.
@@ -122,8 +122,8 @@ again:
122 continue; 122 continue;
123 } 123 }
124 if (q == &se->s_aliases[sd->maxaliases - 1]) { 124 if (q == &se->s_aliases[sd->maxaliases - 1]) {
125 p = realloc(se->s_aliases, 125 p = reallocarray(se->s_aliases, sd->maxaliases,
126 2 * sd->maxaliases * sizeof(char *)); 126 2 * sizeof(char *));
127 if (p == NULL) { 127 if (p == NULL) {
128 serrno = errno; 128 serrno = errno;
129 endservent_r(sd); 129 endservent_r(sd);