X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=lockfile.c;h=988927775169487df7677a17465b512a567488dd;hb=05f24ec36f06d580f7fb566261f4a52cde129e76;hp=4f16ee78ce3dbc263a762a8800dfe9ddfcfaecd5;hpb=1d03f0dffab250aeffd10eba0368b88cf61c6e6b;p=platform%2Fupstream%2Fgit.git diff --git a/lockfile.c b/lockfile.c index 4f16ee7..9889277 100644 --- a/lockfile.c +++ b/lockfile.c @@ -128,9 +128,17 @@ static int lock_file(struct lock_file *lk, const char *path, int flags) path); } - strbuf_add(&lk->filename, path, pathlen); - if (!(flags & LOCK_NO_DEREF)) - resolve_symlink(&lk->filename); + if (flags & LOCK_NO_DEREF) { + strbuf_add_absolute_path(&lk->filename, path); + } else { + struct strbuf resolved_path = STRBUF_INIT; + + strbuf_add(&resolved_path, path, pathlen); + resolve_symlink(&resolved_path); + strbuf_add_absolute_path(&lk->filename, resolved_path.buf); + strbuf_release(&resolved_path); + } + strbuf_addstr(&lk->filename, LOCK_SUFFIX); lk->fd = open(lk->filename.buf, O_RDWR | O_CREAT | O_EXCL, 0666); if (lk->fd < 0) {