diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-01-04 17:59:59 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-01-04 17:59:59 +0000 |
commit | a9b60e93eeb4d2706ebc95bafb18bd4267a03d6f (patch) | |
tree | 541b0130abde25c96918f4c0176514c3b29baa9f /libbb | |
parent | ceab8700dfa0a4f987c9872e12e57cfba6ddb95c (diff) |
new libbb func: xmalloc_realpath (+ use it where makes sense)
syslogd, logread: add debugging code (disabled)
syslogs: drastically smaller bss; fix "-C n" behaviour
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/xreadlink.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c index 14863d9d5..76f52ca06 100644 --- a/libbb/xreadlink.c +++ b/libbb/xreadlink.c @@ -4,16 +4,13 @@ * Returns a NULL on failure... */ -#include <stdio.h> +#include "libbb.h" /* * NOTE: This function returns a malloced char* that you will have to free * yourself. You have been warned. */ -#include <unistd.h> -#include "libbb.h" - char *xreadlink(const char *path) { enum { GROWBY = 80 }; /* how large we will grow strings by */ @@ -36,3 +33,16 @@ char *xreadlink(const char *path) return buf; } + +char *xmalloc_realpath(const char *path) +{ +#ifdef __GLIBC__ + /* glibc provides a non-standard extension */ + return realpath(path, NULL); +#else + char buf[PATH_MAX+1]; + + /* on error returns NULL (xstrdup(NULL) ==NULL) */ + return xstrdup(realpath(path, buf)); +#endif +} |