summaryrefslogtreecommitdiff
path: root/glibc/glibc-cvs/ldconfig.patch
blob: c60b9b1432584631d9d1eb1ae23936b84f260bf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
--- elf/ldconfig.c	2003-07-08 23:26:27.000000000 +0900
+++ elf/ldconfig.c.debian	2003-07-08 23:29:43.000000000 +0900
@@ -920,26 +920,24 @@
 {
   FILE *file = NULL;
   char *line = NULL;
-  const char *canon;
+  const char *canon = filename;
   size_t len = 0;
+  int file_fd;
 
   if (opt_chroot)
     {
       canon = chroot_canon (opt_chroot, filename);
-      if (canon)
-	file = fopen (canon, "r");
-      else
+      if (!canon)
 	canon = filename;
     }
-  else
-    {
-      canon = filename;
-      file = fopen (filename, "r");
-    }
+
+  if ((file_fd = open(canon, O_RDONLY | O_EXCL, 0022)) != -1)
+    file = fdopen (file_fd, "r");
 
   if (file == NULL)
     {
-      error (0, errno, _("Can't open configuration file %s"), canon);
+      if (opt_verbose)
+	error (0, errno, _("Can't open configuration file %s"), canon);
       if (canon != filename)
 	free ((char *) canon);
       return;