diff options
author | Deskin Miller <deskinm@umich.edu> | 2008-09-22 11:06:41 -0400 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2008-09-24 08:58:14 -0700 |
commit | dc4179f9a76473176eb473f6f568b0006c823fba (patch) | |
tree | 92f5313234d45db2628fb56d37c5e6171a46b09b /git.c | |
parent | db87e3960c5a770db13c9ba9602b5e88848e2d1a (diff) | |
download | git-dc4179f9a76473176eb473f6f568b0006c823fba.tar.gz |
maint: check return of split_cmdline to avoid bad config strings
As the testcase demonstrates, it's possible for split_cmdline to return -1 and
deallocate any memory it's allocated, if the config string is missing an end
quote. In both the cases below, which are the only calling sites, the return
isn't checked, and using the pointer causes a pretty immediate segfault.
Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'git.c')
-rw-r--r-- | git.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -162,6 +162,8 @@ static int handle_alias(int *argcp, const char ***argv) alias_string + 1, alias_command); } count = split_cmdline(alias_string, &new_argv); + if (count < 0) + die("Bad alias.%s string", alias_command); option_count = handle_options(&new_argv, &count, &envchanged); if (envchanged) die("alias '%s' changes environment variables\n" |