diff options
author | Thomas Rast <trast@student.ethz.ch> | 2010-10-17 21:23:21 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-10-18 16:10:55 -0700 |
commit | 9e5f5d4cfea5bb7706f1f8bb07795d52d37a59fe (patch) | |
tree | 9b82c97bec2fd89fd64449af23589cd5a2b7cead /setup.c | |
parent | 352953a556e7f8d720e26a32d4aabbf823d3c4d4 (diff) | |
download | git-9e5f5d4cfea5bb7706f1f8bb07795d52d37a59fe.tar.gz |
prefix_filename(): safely handle the case where pfx_len=0
Current prefix_filename() is proofed against the case where the prefix
'pfx' is NULL or a 0-length string, _except on Windows_.
Change the behaviour to work the same on both platforms, and only
check pfx_len so that callers passing a NULL prefix with a nonzero
pfx_len segfault early on both.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'setup.c')
-rw-r--r-- | setup.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -46,7 +46,7 @@ const char *prefix_filename(const char *pfx, int pfx_len, const char *arg) { static char path[PATH_MAX]; #ifndef WIN32 - if (!pfx || !*pfx || is_absolute_path(arg)) + if (!pfx_len || is_absolute_path(arg)) return arg; memcpy(path, pfx, pfx_len); strcpy(path + pfx_len, arg); @@ -55,7 +55,7 @@ const char *prefix_filename(const char *pfx, int pfx_len, const char *arg) /* don't add prefix to absolute paths, but still replace '\' by '/' */ if (is_absolute_path(arg)) pfx_len = 0; - else + else if (pfx_len) memcpy(path, pfx, pfx_len); strcpy(path + pfx_len, arg); for (p = path + pfx_len; *p; p++) |