@@ -2335,6 +2335,11 @@ struct config_store_data {
2335
2335
2336
2336
static void config_store_data_clear (struct config_store_data * store )
2337
2337
{
2338
+ if (store -> value_regex != NULL &&
2339
+ store -> value_regex != CONFIG_REGEX_NONE ) {
2340
+ regfree (store -> value_regex );
2341
+ free (store -> value_regex );
2342
+ }
2338
2343
free (store -> parsed );
2339
2344
free (store -> seen );
2340
2345
memset (store , 0 , sizeof (* store ));
@@ -2722,7 +2727,7 @@ int git_config_set_multivar_in_file_gently(const char *config_filename,
2722
2727
if (regcomp (store .value_regex , value_regex ,
2723
2728
REG_EXTENDED )) {
2724
2729
error ("invalid pattern: %s" , value_regex );
2725
- free (store .value_regex );
2730
+ FREE_AND_NULL (store .value_regex );
2726
2731
ret = CONFIG_INVALID_PATTERN ;
2727
2732
goto out_free ;
2728
2733
}
@@ -2748,21 +2753,11 @@ int git_config_set_multivar_in_file_gently(const char *config_filename,
2748
2753
& store , & opts )) {
2749
2754
error ("invalid config file %s" , config_filename );
2750
2755
free (store .key );
2751
- if (store .value_regex != NULL &&
2752
- store .value_regex != CONFIG_REGEX_NONE ) {
2753
- regfree (store .value_regex );
2754
- free (store .value_regex );
2755
- }
2756
2756
ret = CONFIG_INVALID_FILE ;
2757
2757
goto out_free ;
2758
2758
}
2759
2759
2760
2760
free (store .key );
2761
- if (store .value_regex != NULL &&
2762
- store .value_regex != CONFIG_REGEX_NONE ) {
2763
- regfree (store .value_regex );
2764
- free (store .value_regex );
2765
- }
2766
2761
2767
2762
/* if nothing to unset, or too many matches, error out */
2768
2763
if ((store .seen_nr == 0 && value == NULL ) ||
0 commit comments