diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-02-27 14:01:25 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-02-27 14:01:25 -0800 |
commit | bfef492d769cbea25c3cd951fe452be85402b160 (patch) | |
tree | 24ef7ae95a661de168165b7927df4b2bf1ceba54 | |
parent | 28006fb046ddeaf15f8fe9c7cf2a122e2091451b (diff) | |
parent | 67beb600563cf28186f44450e528df1ec4d524fd (diff) | |
download | git-bfef492d769cbea25c3cd951fe452be85402b160.tar.gz |
Merge branch 'jk/config-path-include-fix'
include.path variable (or any variable that expects a path that can
use ~username expansion) in the configuration file is not a
boolean, but the code failed to check it.
* jk/config-path-include-fix:
handle_path_include: don't look at NULL value
expand_user_path: do not look at NULL path
-rw-r--r-- | config.c | 6 | ||||
-rw-r--r-- | path.c | 2 |
2 files changed, 6 insertions, 2 deletions
@@ -84,8 +84,12 @@ static int handle_path_include(const char *path, struct config_include_data *inc { 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; @@ -265,12 +265,12 @@ static struct passwd *getpw_str(const char *username, size_t len) char *expand_user_path(const char *path) { struct strbuf user_path = STRBUF_INIT; - const char *first_slash = strchrnul(path, '/'); const char *to_copy = path; if (path == NULL) goto return_null; if (path[0] == '~') { + const char *first_slash = strchrnul(path, '/'); const char *username = path + 1; size_t username_len = first_slash - username; if (username_len == 0) { |