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>
This commit is contained in:
committed by
Shawn O. Pearce
parent
db87e3960c
commit
dc4179f9a7
@ -442,6 +442,8 @@ static int git_merge_config(const char *k, const char *v, void *cb)
|
||||
|
||||
buf = xstrdup(v);
|
||||
argc = split_cmdline(buf, &argv);
|
||||
if (argc < 0)
|
||||
die("Bad branch.%s.mergeoptions string", branch);
|
||||
argv = xrealloc(argv, sizeof(*argv) * (argc + 2));
|
||||
memmove(argv + 1, argv, sizeof(*argv) * (argc + 1));
|
||||
argc++;
|
||||
|
||||
Reference in New Issue
Block a user