aboutsummaryrefslogtreecommitdiff
path: root/git.c
diff options
context:
space:
mode:
authorDeskin Miller <deskinm@umich.edu>2008-09-22 11:06:41 -0400
committerShawn O. Pearce <spearce@spearce.org>2008-09-24 08:58:14 -0700
commitdc4179f9a76473176eb473f6f568b0006c823fba (patch)
tree92f5313234d45db2628fb56d37c5e6171a46b09b /git.c
parentdb87e3960c5a770db13c9ba9602b5e88848e2d1a (diff)
downloadgit-dc4179f9a76473176eb473f6f568b0006c823fba.tar.gz
git-dc4179f9a76473176eb473f6f568b0006c823fba.tar.xz
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.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/git.c b/git.c
index fdb0f7101..5582c515a 100644
--- a/git.c
+++ b/git.c
@@ -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"