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 <p...@peff.net> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to