diff options
author | Jonas Fonseca <fonseca@diku.dk> | 2006-03-06 06:23:30 +0100 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-03-07 17:06:10 -0800 |
commit | f067a13745fbeae1aa357876348a00e5edd0a629 (patch) | |
tree | 2fb613fd217a735dd5497ac7e34dbe532e24332c | |
parent | Update http-push functionality (diff) | |
download | tgif-f067a13745fbeae1aa357876348a00e5edd0a629.tar.xz |
repo-config: give value_ a sane default so regexec won't segfault
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | repo-config.c | 5 | ||||
-rwxr-xr-x | t/t1300-repo-config.sh | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/repo-config.c b/repo-config.c index 9cf65193f9..c5ebb7668a 100644 --- a/repo-config.c +++ b/repo-config.c @@ -14,6 +14,9 @@ static enum { T_RAW, T_INT, T_BOOL } type = T_RAW; static int show_config(const char* key_, const char* value_) { + if (value_ == NULL) + value_ = ""; + if (!strcmp(key_, key) && (regexp == NULL || (do_not_match ^ @@ -35,7 +38,7 @@ static int show_config(const char* key_, const char* value_) sprintf(value, "%s", git_config_bool(key_, value_) ? "true" : "false"); } else { - value = strdup(value_ ? value_ : ""); + value = strdup(value_); } seen++; } diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index 207dd3de64..ab4dd5c4ce 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -247,5 +247,13 @@ EOF test_expect_success 'hierarchical section value' 'cmp .git/config expect' +cat > .git/config << EOF +[novalue] + variable +EOF + +test_expect_success 'get variable with no value' \ + 'git-repo-config --get novalue.variable ^$' + test_done |