Merge branch 'jk/format-person-part-buffer-limit' into maint
authorJunio C Hamano <gitster@pobox.com>
Fri, 1 Jun 2012 19:59:58 +0000 (12:59 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 1 Jun 2012 19:59:58 +0000 (12:59 -0700)
By Jeff King
* jk/format-person-part-buffer-limit:
pretty: avoid buffer overflow in format_person_part

1  2 
pretty.c
diff --combined pretty.c
index 02a0a2bb43570fec656c4152454fa67743111a2c,2c1417fe56118b406e1278440beff97df2ed227f..986e114e0c99c2a899831b7196d961f1ce525a48
+++ b/pretty.c
@@@ -547,8 -547,10 +547,10 @@@ static size_t format_person_part(struc
        mail_end = s.mail_end;
  
        if (part == 'N' || part == 'E') { /* mailmap lookup */
-               strlcpy(person_name, name_start, name_end - name_start + 1);
-               strlcpy(person_mail, mail_start, mail_end - mail_start + 1);
+               snprintf(person_name, sizeof(person_name), "%.*s",
+                        (int)(name_end - name_start), name_start);
+               snprintf(person_mail, sizeof(person_mail), "%.*s",
+                        (int)(mail_end - mail_start), mail_start);
                mailmap_name(person_mail, sizeof(person_mail), person_name, sizeof(person_name));
                name_start = person_name;
                name_end = name_start + strlen(person_name);
@@@ -1010,7 -1012,6 +1012,7 @@@ static size_t format_commit_one(struct 
                                get_reflog_selector(sb,
                                                    c->pretty_ctx->reflog_info,
                                                    c->pretty_ctx->date_mode,
 +                                                  c->pretty_ctx->date_mode_explicit,
                                                    (placeholder[1] == 'd'));
                        return 2;
                case 's':       /* reflog message */