Fix reception of (quoted) local-parts with embedded spaces. Bug 2025
[exim.git] / src / src / smtp_in.c
index 9c647efda8db520f56f0d46499497c376bfbde55..8de12156d911901d80bc82d6774b74f03cfb7907 100644 (file)
@@ -1674,7 +1674,13 @@ uschar *n;
 uschar *v = smtp_cmd_data + Ustrlen(smtp_cmd_data) - 1;
 while (isspace(*v)) v--;
 v[1] = 0;
-while (v > smtp_cmd_data && *v != '=' && !isspace(*v)) v--;
+while (v > smtp_cmd_data && *v != '=' && !isspace(*v))
+  {
+  /* Take care to not stop at a space embedded in a quoted local-part */
+
+  if (*v == '"') do v--; while (*v != '"' && v > smtp_cmd_data+1);
+  v--;
+  }
 
 n = v;
 if (*v == '=')