Correct gecos expansion when From: is a prefix of the username.
authorTony Finch <dot@dotat.at>
Thu, 6 Dec 2012 19:11:28 +0000 (19:11 +0000)
committerTony Finch <dot@dotat.at>
Thu, 6 Dec 2012 19:11:28 +0000 (19:11 +0000)
Test 0254 submits a message to Exim with the header

  Resent-From: f

When I ran the test suite under the user fanf2, Exim expanded
the header to contain my full name, whereas it should have added
a Resent-Sender: header. It erroneously treats any prefix of the
username as equal to the username.

This change corrects that bug.

doc/doc-txt/ChangeLog
src/src/receive.c

index 577ac39f09a54abce75fa4375e7594ec5564a79b..b516a711870c94933c19d6840b9b8bde1310992e 100644 (file)
@@ -120,6 +120,19 @@ TF/01 Fix ultimate retry timeouts for intermittently deliverable recipients.
       I suspect this new check makes the old local delivery cutoff check
       redundant, but I have not verified this so I left the code in place.
 
+TF/02 Correct gecos expansion when From: is a prefix of the username.
+
+      Test 0254 submits a message to Exim with the header
+
+        Resent-From: f
+
+      When I ran the test suite under the user fanf2, Exim expanded
+      the header to contain my full name, whereas it should have added
+      a Resent-Sender: header. It erroneously treats any prefix of the
+      username as equal to the username.
+
+      This change corrects that bug.
+
 
 Exim version 4.80.1
 -------------------
index 1943a74c75d02e8aef718bc2e24c7896c5162012..4d77bcd9657f17f95fce73462d40aa13bf5c633c 100644 (file)
@@ -2037,7 +2037,7 @@ for (h = header_list->next; h != NULL; h = h->next)
         {
         uschar *s = Ustrchr(h->text, ':') + 1;
         while (isspace(*s)) s++;
-        if (strncmpic(s, originator_login, h->slen - (s - h->text) - 1) == 0)
+        if (strcmpic(s, originator_login) == 0)
           {
           uschar *name = is_resent? US"Resent-From" : US"From";
           header_add(htype_from, "%s: %s <%s@%s>\n", name, originator_name,