Fixed parsing of message-id angle brackets
authorArt Cancro <ajc@citadel.org>
Fri, 12 Apr 2024 16:15:57 +0000 (09:15 -0700)
committerArt Cancro <ajc@citadel.org>
Fri, 12 Apr 2024 16:15:57 +0000 (09:15 -0700)
citadel/server/internet_addressing.c

index 09d7fd1315a1ad7b380e84e5c3a644597872dd39..746bed1a0fb86d3c56bb6ec1843d3704f14eb5a1 100644 (file)
@@ -887,26 +887,19 @@ int convert_field(struct CtdlMessage *msg, const char *beg, const char *end) {
                        syslog(LOG_WARNING, "internet_addressing: duplicate message id");
                }
                else {
-                       char *pValue;
-                       long pValueLen;
-
-                       pValue = value;
-                       pValueLen = valuelen;
-                       // Strip angle brackets
-                       while (haschar(pValue, '<') > 0) {
-                               pValue ++;
-                               pValueLen --;
-                       }
-
-                       for (i = 0; i <= pValueLen; ++i)
-                               if (pValue[i] == '>') {
-                                       pValueLen = i;
-                                       break;
+                       char *pvalue = value;                           // strip out angle brackets
+                       char *ptr = pvalue;
+                       while (*ptr) {
+                               if (*ptr == '<') {
+                                       pvalue = ptr + 1;
                                }
-
-                       CM_SetField(msg, emessageId, pValue);
+                               if (*ptr == '>') {
+                                       *ptr = 0;
+                               }
+                               ++ptr;
+                       }
+                       CM_SetField(msg, emessageId, pvalue);
                }
-
                processed = 1;
        }