From 3534b428629be185e096be99e3bd5fdfe32d5544 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Thu, 18 Sep 2014 18:55:44 +0000 Subject: initial commit with rc for skalibs-2.0.0.0 --- src/libstddjb/realpath_tmp.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/libstddjb/realpath_tmp.c (limited to 'src/libstddjb/realpath_tmp.c') diff --git a/src/libstddjb/realpath_tmp.c b/src/libstddjb/realpath_tmp.c new file mode 100644 index 0000000..8f877dd --- /dev/null +++ b/src/libstddjb/realpath_tmp.c @@ -0,0 +1,26 @@ +/* ISC license. */ + +#include +#include +#include +#include +#include + +#ifndef PATH_MAX +# define PATH_MAX 4095 +#endif + +char *realpath_tmp (char const *name, char *buf, stralloc *tmp) +{ + unsigned int tmpbase = tmp->len ; + if (sarealpath(tmp, name) == -1) return (char *)0 ; + if (tmp->len - tmpbase > PATH_MAX) + { + tmp->len = tmpbase ; + return (errno = ENAMETOOLONG, (char *)0) ; + } + byte_copy(buf, tmp->len - tmpbase, tmp->s + tmpbase) ; + buf[tmp->len - tmpbase] = 0 ; + tmp->len = tmpbase ; + return buf ; +} -- cgit v1.3.1