This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix :include: handling in files-alias.c


Hi!

When the inner loop terminates, line is NULL, but later code expects
to find the rest of the aliases line (after :include: and it's argument)
at line.  Also, old_line is certainly != NULL (tested by the surrounding
if), so there is no need to test it once more (well, free allows NULL
argument anyway).

2006-11-14  Jakub Jelinek  <jakub@redhat.com>

	* nss/nss_files/files-alias.c (get_next_alias): Set line back
	to first_unused after parsing :include: file.

--- libc/nss/nss_files/files-alias.c.jj	2002-09-01 14:38:05.000000000 +0200
+++ libc/nss/nss_files/files-alias.c	2006-11-14 21:04:20.000000000 +0100
@@ -1,5 +1,5 @@
 /* Mail alias file parser in nss_files module.
-   Copyright (C) 1996,97,98,99,2002 Free Software Foundation, Inc.
+   Copyright (C) 1996,97,98,99,2002,2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -298,8 +298,8 @@ get_next_alias (const char *match, struc
 			  first_unused[room_left - 1] = '\0';
 			  strncpy (first_unused, old_line, room_left);
 
-			  if (old_line != NULL)
-			    free (old_line);
+			  free (old_line);
+			  line = first_unused;
 
 			  if (first_unused[room_left - 1] != '\0')
 			    goto no_more_room;

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]