Module Name: src
Committed By: nia
Date: Sat Mar 12 08:43:12 UTC 2022
Modified Files:
src/lib/libc/net: getservent_r.c
Log Message:
getservent_r: use reallocarr
CVSv ----------------------------------------------------------------------
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/net/getservent_r.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/net/getservent_r.c
diff -u src/lib/libc/net/getservent_r.c:1.11 src/lib/libc/net/getservent_r.c:1.12
--- src/lib/libc/net/getservent_r.c:1.11 Sat Oct 15 23:00:02 2011
+++ src/lib/libc/net/getservent_r.c Sat Mar 12 08:43:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: getservent_r.c,v 1.11 2011/10/15 23:00:02 christos Exp $ */
+/* $NetBSD: getservent_r.c,v 1.12 2022/03/12 08:43:11 nia Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)getservent.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: getservent_r.c,v 1.11 2011/10/15 23:00:02 christos Exp $");
+__RCSID("$NetBSD: getservent_r.c,v 1.12 2022/03/12 08:43:11 nia Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -291,9 +291,12 @@ _servent_parsedb(struct servent_data *sd
if (sd->aliases == NULL) {
sd->maxaliases = 10;
- sd->aliases = malloc(sd->maxaliases * sizeof(char *));
- if (sd->aliases == NULL)
+ sd->aliases = NULL;
+ if (reallocarr(&sd->aliases,
+ sd->maxaliases, sizeof(char *)) != 0) {
+ errno = ENOMEM;
goto fail;
+ }
}
sp->s_aliases = sd->aliases;
i = 0;
@@ -302,9 +305,11 @@ _servent_parsedb(struct servent_data *sd
goto fail;
if (i == sd->maxaliases - 2) {
sd->maxaliases *= 2;
- q = realloc(sd->aliases, sd->maxaliases * sizeof(*q));
- if (q == NULL)
+ q = sd->aliases;
+ if (reallocarr(&q, sd->maxaliases, sizeof(*q)) != 0) {
+ errno = ENOMEM;
goto fail;
+ }
sp->s_aliases = sd->aliases = q;
}
sp->s_aliases[i++] = __UNCONST(data + 1);