Module Name: src
Committed By: nia
Date: Sat Mar 12 08:32:02 UTC 2022
Modified Files:
src/lib/libc/gen: setmode.c
Log Message:
setmode(3): use reallocarr instead of realloc(x * y)
To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/lib/libc/gen/setmode.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/gen/setmode.c
diff -u src/lib/libc/gen/setmode.c:1.35 src/lib/libc/gen/setmode.c:1.36
--- src/lib/libc/gen/setmode.c:1.35 Sat Mar 12 08:28:30 2022
+++ src/lib/libc/gen/setmode.c Sat Mar 12 08:32:02 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: setmode.c,v 1.35 2022/03/12 08:28:30 nia Exp $ */
+/* $NetBSD: setmode.c,v 1.36 2022/03/12 08:32:02 nia Exp $ */
/*
* Copyright (c) 1989, 1993, 1994
@@ -37,7 +37,7 @@
#if 0
static char sccsid[] = "@(#)setmode.c 8.2 (Berkeley) 3/25/94";
#else
-__RCSID("$NetBSD: setmode.c,v 1.35 2022/03/12 08:28:30 nia Exp $");
+__RCSID("$NetBSD: setmode.c,v 1.36 2022/03/12 08:32:02 nia Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -163,9 +163,11 @@ common: if (set->cmd2 & CMD2_CLR) {
if (set >= endset) { \
BITCMD *newset; \
setlen += SET_LEN_INCR; \
- newset = realloc(saveset, sizeof(BITCMD) * setlen); \
- if (newset == NULL) \
+ newset = saveset; \
+ if (reallocarr(&newset, setlen, sizeof(BITCMD)) != 0) { \
+ errno = ENOMEM; \
goto out; \
+ } \
set = newset + (set - saveset); \
saveset = newset; \
endset = newset + (setlen - 2); \