port fragment loader to new utility functions

This commit is contained in:
Lennart Poettering 2010-01-27 22:39:10 +01:00
parent b2aa81efde
commit c25fb0edbb

View file

@ -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)