summaryrefslogtreecommitdiffstats
path: root/lib/libutil
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2017-05-09 23:31:09 +0000
committerpfg <pfg@FreeBSD.org>2017-05-09 23:31:09 +0000
commit9498b1d27a47f26ccd6e4233ad479503fc73c207 (patch)
tree74b09547df77f0a50b0162e21daab37fb0bc1ed5 /lib/libutil
parent643d95272bd8bc6a4fd1c99b1e560e28ea4f57c7 (diff)
downloadFreeBSD-src-9498b1d27a47f26ccd6e4233ad479503fc73c207.zip
FreeBSD-src-9498b1d27a47f26ccd6e4233ad479503fc73c207.tar.gz
MFC r317265:
lib: initial use of reallocarray(3). Make some use of reallocarray, attempting to limit it to cases where the parameters are unsigned and there is some theoretical chance of overflow.
Diffstat (limited to 'lib/libutil')
-rw-r--r--lib/libutil/gr_util.c2
-rw-r--r--lib/libutil/login_cap.c2
-rw-r--r--lib/libutil/pw_util.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/lib/libutil/gr_util.c b/lib/libutil/gr_util.c
index 99f268c..fcc0820 100644
--- a/lib/libutil/gr_util.c
+++ b/lib/libutil/gr_util.c
@@ -205,7 +205,7 @@ gr_copy(int ffd, int tfd, const struct group *gr, struct group *old_gr)
if (eof)
break;
while ((size_t)(q - p) >= size) {
- if ((tmp = realloc(buf, size * 2)) == NULL) {
+ if ((tmp = reallocarray(buf, 2, size)) == NULL) {
warnx("group line too long");
goto err;
}
diff --git a/lib/libutil/login_cap.c b/lib/libutil/login_cap.c
index 9c8d4a6..cea7630 100644
--- a/lib/libutil/login_cap.c
+++ b/lib/libutil/login_cap.c
@@ -86,7 +86,7 @@ allocarray(size_t sz)
if (sz <= internal_arraysz)
p = internal_array;
- else if ((p = realloc(internal_array, sz * sizeof(char*))) != NULL) {
+ else if ((p = reallocarray(internal_array, sz, sizeof(char*))) != NULL) {
internal_arraysz = sz;
internal_array = p;
}
diff --git a/lib/libutil/pw_util.c b/lib/libutil/pw_util.c
index 0c34e67..627d79b 100644
--- a/lib/libutil/pw_util.c
+++ b/lib/libutil/pw_util.c
@@ -468,7 +468,7 @@ pw_copy(int ffd, int tfd, const struct passwd *pw, struct passwd *old_pw)
if (eof)
break;
while ((size_t)(q - p) >= size) {
- if ((tmp = realloc(buf, size * 2)) == NULL) {
+ if ((tmp = reallocarray(buf, 2, size)) == NULL) {
warnx("passwd line too long");
goto err;
}
OpenPOWER on IntegriCloud