Libor Pechacek <lpechacek@xxxxxxx> writes: > diff --git a/config.c b/config.c > index fde91f5..5eb89a7 100644 > --- a/config.c > +++ b/config.c > @@ -1113,6 +1113,7 @@ int git_config_set(const char *key, const char *value) > int git_config_parse_key(const char *key, char **store_key, int *baselen_) > { > int i, dot, baselen; > + int keylen = strlen(key); > const char *last_dot = strrchr(key, '.'); > > /* > @@ -1120,11 +1121,16 @@ int git_config_parse_key(const char *key, char **store_key, int *baselen_) > * key name separated by a dot, we have to know where the dot is. > */ > > - if (last_dot == NULL) { > + if (last_dot == NULL || *key == '.') { > error("key does not contain a section: %s", key); > return -2; > } > > + if (keylen && key[keylen-1] == '.') { Aren't these the same as saying if (!last_dot || last_dot == key) { ... } if (!last_dot[1]) { /* we know last_dot is not NULL */ ... } Again, a minimum fix-up on top of your patch. Thanks. diff --git a/config.c b/config.c index 75dd629..d5bb862 100644 --- a/config.c +++ b/config.c @@ -1113,7 +1113,6 @@ int git_config_set(const char *key, const char *value) int git_config_parse_key(const char *key, char **store_key, int *baselen_) { int i, dot, baselen; - int keylen = strlen(key); const char *last_dot = strrchr(key, '.'); /* @@ -1121,12 +1120,12 @@ int git_config_parse_key(const char *key, char **store_key, int *baselen_) * key name separated by a dot, we have to know where the dot is. */ - if (last_dot == NULL || *key == '.') { + if (last_dot == NULL || last_dot == key) { error("key does not contain a section: %s", key); return -2; } - if (keylen && key[keylen-1] == '.') { + if (!last_dot[1]) { error("key does not contain variable name: %s", key); return -2; } @@ -1138,7 +1137,7 @@ int git_config_parse_key(const char *key, char **store_key, int *baselen_) /* * Validate the key and while at it, lower case it for matching. */ - *store_key = xmalloc(keylen + 1); + *store_key = xmalloc(strlen(key) + 1); dot = 0; for (i = 0; key[i]; i++) { -- 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