Re: [PATCH] Git segmentation faults if submodule path is empty.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



OK,  I'll incorporate Jeff's changes, add a test and resubmit the patch.

Thanks,

--
Jharrod LaFon
OpenEye Scientific Software

On Aug 16, 2013, at 7:14 AM, Jeff King <peff@xxxxxxxx> wrote:

> On Fri, Aug 16, 2013 at 09:09:58AM -0400, Jeff King wrote:
> 
>>>> -	if (parse_config_key(var, "submodule", &name, &namelen, &key) < 0 || !name)
>>>> +	if (parse_config_key(var, "submodule", &name, &namelen, &key) < 0 || !name || !value)
>>>> 		return 0;
>> 
>> I think this is also the wrong place to make the check, anyway. It is
>> saying that all values of submodule.X.Y must be non-NULL. But that is
>> not true. The submodule.X.fetchRecurseSubmodules option can be a
>> boolean, and:
>> 
>>  [submodule "foo"]
>>    fetchRecurseSubmodules
>> 
>> is perfectly valid (and is broken by this patch).
> 
> IOW, I think this is the right fix:
> 
> diff --git a/submodule.c b/submodule.c
> index 3f0a3f9..c0f93c2 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -134,6 +134,9 @@ int parse_submodule_config_option(const char *var, const char *value)
> 		return 0;
> 
> 	if (!strcmp(key, "path")) {
> +		if (!value)
> +			return config_error_nonbool(var);
> +
> 		config = unsorted_string_list_lookup(&config_name_for_path, value);
> 		if (config)
> 			free(config->util);
> @@ -151,6 +154,9 @@ int parse_submodule_config_option(const char *var, const char *value)
> 	} else if (!strcmp(key, "ignore")) {
> 		char *name_cstr;
> 
> +		if (!value)
> +			return config_error_nonbool(var);
> +
> 		if (strcmp(value, "untracked") && strcmp(value, "dirty") &&
> 		    strcmp(value, "all") && strcmp(value, "none")) {
> 			warning("Invalid parameter \"%s\" for config option \"submodule.%s.ignore\"", value, var);
> 
> And new options, as they are added, must decide whether they are boolean
> or not (and check !value as appropriate).
> 
> -Peff

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]