X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flabel.c;fp=src%2Flabel.c;h=218d0dfa06f119e34991f2bd4d281c163e5b9f9f;hp=d037c4c93215bfe67b84439b5eb27c3100c41123;hb=dce8e2e12304946a13c261b2324ce1e14ed9f5cd;hpb=e23a0ce8badd09aefa961a3a576bfe85f6ebbad7 diff --git a/src/label.c b/src/label.c index d037c4c93..218d0dfa0 100644 --- a/src/label.c +++ b/src/label.c @@ -258,20 +258,15 @@ int label_mkdir( if (use_selinux() && label_hnd) { - if (path[0] == '/') + if (path_is_absolute(path)) r = selabel_lookup_raw(label_hnd, &fcon, path, mode); else { - char *cwd = NULL, *newpath = NULL; + char *newpath = NULL; - cwd = get_current_dir_name(); - - if (cwd || asprintf(&newpath, "%s/%s", cwd, path) < 0) { - free(cwd); - return -errno; - } + if (!(newpath = path_make_absolute_cwd(path))) + return -ENOMEM; r = selabel_lookup_raw(label_hnd, &fcon, newpath, mode); - free(cwd); free(newpath); }