From: Bradford C. Smith <bradford.carl.smith@xxxxxxxxx> Use make_absolute_path() to get fully resolved path name for creating the lock file. Signed-off-by: Bradford C. Smith <bradford.carl.smith@xxxxxxxxx> --- lockfile.c | 16 +++------------- 1 files changed, 3 insertions(+), 13 deletions(-) diff --git a/lockfile.c b/lockfile.c index 9202472..57f850f 100644 --- a/lockfile.c +++ b/lockfile.c @@ -28,20 +28,10 @@ static void remove_lock_file_on_signal(int signo) static int lock_file(struct lock_file *lk, const char *path) { int fd; - struct stat st; - if ((!lstat(path, &st)) && S_ISLNK(st.st_mode)) { - ssize_t sz; - static char target[PATH_MAX]; - sz = readlink(path, target, sizeof(target)); - if (sz < 0) - warning("Cannot readlink %s", path); - else if (target[0] != '/') - warning("Cannot lock target of relative symlink %s", path); - else - path = target; - } - sprintf(lk->filename, "%s.lock", path); + strcpy(lk->filename, path); + make_absolute_path(lk->filename); + strcat(lk->filename, ".lock"); fd = open(lk->filename, O_RDWR | O_CREAT | O_EXCL, 0666); if (0 <= fd) { if (!lock_file_list) { -- 1.5.3.rc3.9.g9ef91 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html