]> git.ipfire.org Git - thirdparty/git.git/commit - abspath.c
real_pathdup(): fix callsites that wanted it to die on error
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 8 Mar 2017 15:43:40 +0000 (16:43 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 8 Mar 2017 22:38:41 +0000 (14:38 -0800)
commitce83eadd9a2c63db6263df91933da1b1b865d26a
tree784557c4dda31707340440142db671375a36653f
parentaac3eaa6242d00d358a077aa740cf5051905a569
real_pathdup(): fix callsites that wanted it to die on error

In 4ac9006f832 (real_path: have callers use real_pathdup and
strbuf_realpath, 2016-12-12), we changed the xstrdup(real_path())
pattern to use real_pathdup() directly.

The problem with this change is that real_path() calls
strbuf_realpath() with die_on_error = 1 while real_pathdup() calls
it with die_on_error = 0. Meaning that in cases where real_path()
causes Git to die() with an error message, real_pathdup() is silent
and returns NULL instead.

The callers, however, are ill-prepared for that change, as they expect
the return value to be non-NULL (and otherwise the function died
with an appropriate error message).

Fix this by extending real_pathdup()'s signature to accept the
die_on_error flag and simply pass it through to strbuf_realpath(),
and then adjust all callers after a careful audit whether they would
handle NULLs well.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
abspath.c
builtin/init-db.c
cache.h
dir.c
environment.c
setup.c
submodule.c
t/t1501-work-tree.sh
worktree.c