forked from ariadne/pkgconf
13a5d9a5f0
To avoid a crash on some platforms (like Darwin 9) provide a buffer to realpath(3). Darwin 9 (last PPC target) documents realpath needs to be given a buffer to the resolved_path argument large enough to hold PATH_MAX bytes. With NULL argument it crashes. Solaris makes no mention of resolved_path to be allowed NULL, yet recent versions accept it and malloc(3) accordingly. Because the documentation explicitly mentions PATH_MAX being the limit to what realpath(3) would write in resolved_path, switching to a static buffer here doesn't limit resolution compared to dynamically allocating a buffer by realpath(3). While this change requires a bit more space on the stack, it avoids a malloc/free sequence, and allows successful operation on (older) platforms that lack support for dynamically allocating a return buffer in realpath(3). Signed-off-by: Fabian Groffen <grobian@gentoo.org> |
||
---|---|---|
.. | ||
argvsplit.c | ||
audit.c | ||
bsdstubs.c | ||
bsdstubs.h | ||
cache.c | ||
client.c | ||
config.h.meson | ||
dependency.c | ||
fileio.c | ||
fragment.c | ||
iter.h | ||
libpkgconf-api.h | ||
libpkgconf.h | ||
meson.build | ||
parser.c | ||
path.c | ||
personality.c | ||
pkg.c | ||
queue.c | ||
stdinc.h | ||
tuple.c | ||
win-dirent.h |