Merge branch 'maint-1.6.1' into maint
authorJunio C Hamano <gitster@pobox.com>
Sat, 18 Apr 2009 04:20:58 +0000 (21:20 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 18 Apr 2009 04:20:58 +0000 (21:20 -0700)
* maint-1.6.1:
Fix buffer overflow in config parser

1  2 
config.c
diff --combined config.c
index 0c8c76f13b03028ad400b1c5b72b3cf0a7ec0940,37e3c74861cb335d4bacab86c2f5d03cd95f43bf..7a83c76f4b0480416b01213c0aca30b1e92556d2
+++ b/config.c
@@@ -51,7 -51,7 +51,7 @@@ static char *parse_value(void
  
        for (;;) {
                int c = get_next_char();
-               if (len >= sizeof(value))
+               if (len >= sizeof(value) - 1)
                        return NULL;
                if (c == '\n') {
                        if (quote)
@@@ -565,15 -565,6 +565,15 @@@ static int git_default_branch_config(co
        return 0;
  }
  
 +static int git_default_mailmap_config(const char *var, const char *value)
 +{
 +      if (!strcmp(var, "mailmap.file"))
 +              return git_config_string(&git_mailmap_file, var, value);
 +
 +      /* Add other config variables here and to Documentation/config.txt. */
 +      return 0;
 +}
 +
  int git_default_config(const char *var, const char *value, void *dummy)
  {
        if (!prefixcmp(var, "core."))
        if (!prefixcmp(var, "branch."))
                return git_default_branch_config(var, value);
  
 +      if (!prefixcmp(var, "mailmap."))
 +              return git_default_mailmap_config(var, value);
 +
        if (!strcmp(var, "pager.color") || !strcmp(var, "color.pager")) {
                pager_use_color = git_config_bool(var,value);
                return 0;