handle_path_include: don't look at NULL value
authorJeff King <peff@peff.net>
Tue, 28 Jan 2014 01:37:30 +0000 (20:37 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 Jan 2014 19:59:49 +0000 (11:59 -0800)
When we see config like:

[include]
path

the expand_user_path helper notices that the config value is
empty, but we then dereference NULL while printing the error
message (glibc will helpfully print "(null)" for us here,
but we cannot rely on that).

$ git -c include.path rev-parse
error: Could not expand include path '(null)'
fatal: unable to parse command-line config

Instead of tweaking our message, let's actually use
config_error_nonbool to match other config variables that
expect a value:

$ git -c include.path rev-parse
error: Missing value for 'include.path'
fatal: unable to parse command-line config

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
config.c
index 2bbf02d1e8c2c05f9fba1149c307c1b3b06517fd..47ce8d8b8eadb965f33044a1d19cb17e1c2875cb 100644 (file)
--- a/config.c
+++ b/config.c
@@ -37,8 +37,12 @@ static int handle_path_include(const char *path, struct config_include_data *inc
 {
        int ret = 0;
        struct strbuf buf = STRBUF_INIT;
 {
        int ret = 0;
        struct strbuf buf = STRBUF_INIT;
-       char *expanded = expand_user_path(path);
+       char *expanded;
 
 
+       if (!path)
+               return config_error_nonbool("include.path");
+
+       expanded = expand_user_path(path);
        if (!expanded)
                return error("Could not expand include path '%s'", path);
        path = expanded;
        if (!expanded)
                return error("Could not expand include path '%s'", path);
        path = expanded;