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;
|