History log of /seL4-test-master/projects/musllibc/src/misc/realpath.c
Revision Date Author Comments
# 594c827a 24-May-2014 Rich Felker <dalias@aerifal.cx>

support kernels with no SYS_open syscall, only SYS_openat

open is handled specially because it is used from so many places, in
so many variants (2 or 3 arguments, setting errno or not, and
cancellable or not). trying to do it as a function would not only
increase bloat, but would also risk subtle breakage.

this is the first step towards supporting "new" archs where linux
lacks "old" syscalls.


# 35e8621a 31-Aug-2013 Rich Felker <dalias@aerifal.cx>

remove incorrect cancellation points from realpath


# dfddd432 31-Aug-2013 Rich Felker <dalias@aerifal.cx>

debloat realpath's allocation strategy

rather than allocating a PATH_MAX-sized buffer when the caller does
not provide an output buffer, work first with a PATH_MAX-sized temp
buffer with automatic storage, and either copy it to the caller's
buffer or strdup it on success. this not only avoids massive memory
waste, but also avoids pulling in free (and thus the full malloc
implementation) unnecessarily in static programs.


# 27b4923b 31-Aug-2013 Rich Felker <dalias@aerifal.cx>

make realpath use O_PATH when opening the file

this avoids failure if the file is not readable and avoids odd
behavior for device nodes, etc. on old kernels that lack O_PATH, the
old behavior (O_RDONLY) will naturally happen as the fallback.


# c8c0844f 01-Aug-2013 Rich Felker <dalias@aerifal.cx>

debloat code that depends on /proc/self/fd/%d with shared function

I intend to add more Linux workarounds that depend on using these
pathnames, and some of them will be in "syscall" functions that, from
an anti-bloat standpoint, should not depend on the whole snprintf
framework.


# f2d08cf7 29-Sep-2012 Rich Felker <dalias@aerifal.cx>

fix some more O_CLOEXEC/SOCK_CLOEXEC issues


# 400c5e5c 06-Sep-2012 Rich Felker <dalias@aerifal.cx>

use restrict everywhere it's required by c99 and/or posix 2008

to deal with the fact that the public headers may be used with pre-c99
compilers, __restrict is used in place of restrict, and defined
appropriately for any supported compiler. we also avoid the form
[restrict] since older versions of gcc rejected it due to a bug in the
original c99 standard, and instead use the form *restrict.


# d43ff110 18-Jun-2011 Rich Felker <dalias@aerifal.cx>

fix memory leak on failure in realpath


# e98bdca9 17-Apr-2011 Rich Felker <dalias@aerifal.cx>

minimal realpath implementation using /proc

clean and simple, but fails when the caller does not have permissions
to open the file for reading or when /proc is not available. i may
replace this with a full implementation later, possibly leaving this
version as an optimization to use when it works.


# 0b44a031 11-Feb-2011 Rich Felker <dalias@aerifal.cx>

initial check-in, version 0.5.0