Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jun 2012 10:06:34 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r237266 - stable/9/lib/libc/gen
Message-ID:  <201206191006.q5JA6YNC035178@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Tue Jun 19 10:06:34 2012
New Revision: 237266
URL: http://svn.freebsd.org/changeset/base/237266

Log:
  MFC r237159:
  Fix reading of netgroup(5) file which contains more then one netgroup.

Modified:
  stable/9/lib/libc/gen/getnetgrent.c
Directory Properties:
  stable/9/lib/libc/   (props changed)

Modified: stable/9/lib/libc/gen/getnetgrent.c
==============================================================================
--- stable/9/lib/libc/gen/getnetgrent.c	Tue Jun 19 10:04:36 2012	(r237265)
+++ stable/9/lib/libc/gen/getnetgrent.c	Tue Jun 19 10:06:34 2012	(r237266)
@@ -538,7 +538,7 @@ parse_netgrp(const char *group)
 static struct linelist *
 read_for_group(const char *group)
 {
-	char *pos, *spos, *linep;
+	char *linep, *olinep, *pos, *spos;
 	int len, olen;
 	int cont;
 	struct linelist *lp;
@@ -615,15 +615,20 @@ read_for_group(const char *group)
 				} else
 					cont = 0;
 				if (len > 0) {
-					linep = reallocf(linep, olen + len + 1);
+					linep = malloc(olen + len + 1);
 					if (linep == NULL) {
 						free(lp->l_groupname);
 						free(lp);
 						return (NULL);
 					}
+					if (olen > 0) {
+						bcopy(olinep, linep, olen);
+						free(olinep);
+					}
 					bcopy(pos, linep + olen, len);
 					olen += len;
 					*(linep + olen) = '\0';
+					olinep = linep;
 				}
 				if (cont) {
 					if (fgets(line, LINSIZ, netf)) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206191006.q5JA6YNC035178>