X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=load-fragment.c;h=2df5c04f779f1c9b6d890bb5076fdcb79beddfb3;hb=fdf88f5f3383dc4fdd7358b954c6b79e4fe0791b;hp=8bb29b2dcd3c2139c228ba18363604540890787a;hpb=acbb02252a38214ecba3aa8a5c9b3669f9c9317e;p=elogind.git diff --git a/load-fragment.c b/load-fragment.c index 8bb29b2dc..2df5c04f7 100644 --- a/load-fragment.c +++ b/load-fragment.c @@ -481,32 +481,6 @@ int config_parse_bindtodevice( #define FOLLOW_MAX 8 -static char *build_path(const char *path, const char *filename) { - char *e, *r; - size_t k; - - assert(path); - assert(filename); - - /* This removes the last component of path and appends - * filename, unless the latter is absolute anyway or the - * former isn't */ - - if (path_is_absolute(filename)) - return strdup(filename); - - if (!(e = strrchr(path, '/'))) - return strdup(filename); - - k = strlen(filename); - if (!(r = new(char, e-path+1+k+1))) - return NULL; - - memcpy(r, path, e-path+1); - memcpy(r+(e-path)+1, filename, k+1); - - return r; -} static int open_follow(char **filename, FILE **_f, Set *names, char **_id) { unsigned c = 0; @@ -553,7 +527,7 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_id) { if ((r = readlink_malloc(*filename, &target)) < 0) return r; - k = build_path(*filename, target); + k = file_in_same_dir(*filename, target); free(target); if (!k)