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);