[PATCH] Make /etc/default/nss reading errno preserving
Jakub Jelinek
jakub@redhat.com
Tue Jul 3 13:20:00 GMT 2007
Hi!
_nsl_default_nss is called indirectly even from functions which should
preserve errno in certain cases (e.g. getpwent if it returns NULL
should only set errno in case of error). But presence of /etc/default/nss
or lack thereof should not be considered an error.
2007-07-03 Jakub Jelinek <jakub@redhat.com>
[BZ #4702]
* nis/nss-default.c: Include errno.h.
(init): Preserve errno.
--- libc/nis/nss-default.c.jj 2006-04-28 23:03:17.000000000 +0200
+++ libc/nis/nss-default.c 2007-07-03 14:59:57.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 2001, 2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 2001, 2004, 2006, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,7 @@
02111-1307 USA. */
#include <ctype.h>
+#include <errno.h>
#include <stdio.h>
#include <stdio_ext.h>
#include <stdlib.h>
@@ -54,6 +55,7 @@ static const struct
static void
init (void)
{
+ int saved_errno = errno;
FILE *fp = fopen (default_nss, "rc");
if (fp != NULL)
{
@@ -111,6 +113,7 @@ init (void)
fclose (fp);
}
+ __set_errno (saved_errno);
}
Jakub
More information about the Libc-hacker
mailing list