|
|
|
@ -19,16 +19,16 @@ char *realpath(const char *filename, char *resolved) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
fd = open(filename, O_RDONLY|O_NONBLOCK); |
|
|
|
if (fd < 0) return 0; |
|
|
|
snprintf(buf, sizeof buf, "/proc/self/fd/%d", fd); |
|
|
|
|
|
|
|
if (!resolved) { |
|
|
|
alloc = 1; |
|
|
|
resolved = malloc(PATH_MAX); |
|
|
|
if (!resolved) return 0; |
|
|
|
} |
|
|
|
|
|
|
|
fd = open(filename, O_RDONLY|O_NONBLOCK); |
|
|
|
if (fd < 0) return 0; |
|
|
|
snprintf(buf, sizeof buf, "/proc/self/fd/%d", fd); |
|
|
|
|
|
|
|
r = readlink(buf, resolved, PATH_MAX-1); |
|
|
|
if (r < 0) goto err; |
|
|
|
resolved[r] = 0; |
|
|
|
|