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)) {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to