On Thu, Apr 17, 2014 at 01:47:11AM +0100, Djalal Harouni wrote: > create_symlink() do not check the return value of unlink(), this may > confuse the user. > > Before the unlink() call we check the 'force' argument. If it is not set > we fail with -EEXIST, otherwise we unlink() the file, therefore the next > symlink() should not fail with -EEXIST (do not count races...). > > However since callers may not have appropriate privileges to unlink() > the file we lose the -EPERM or any other errno code of unlink(), and > return the -EEXIST of the next symlink(). Fix this by checking unlink() > results. > > Before: > $ systemctl --force --root=~/container-03 set-default multi-user.target > Failed to set default target: File exists > > After: > $ systemctl --force --root=~/container-03 set-default multi-user.target > Failed to set default target: Permission denied Applied.
Zbyszek _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel