Fix DSN Final-Recipient: field
[exim.git] / src / src / arc.c
index 6c4bcc641e924e17bb8b37aeeb03180ccc213788..7bdf4bfbbc7bc46eb0dec7c291f7f81625526ecc 100644 (file)
@@ -260,9 +260,10 @@ while ((c = *s))
          while ((c = *++s) && c != ';')
            if (c != ' ' && c != '\t' && c != '\n' && c != '\r')
              g = string_catn(g, s, 1);
+         if (!g) return US"no b= value";
          al->b.data = string_from_gstring(g);
          al->b.len = g->ptr;
-         gstring_reset_unused(g);
+         gstring_release_unused(g);
          bend = s;
          break;
        case 'h':                       /* bh= AMS body hash */
@@ -276,9 +277,10 @@ while ((c = *s))
          while ((c = *++s) && c != ';')
            if (c != ' ' && c != '\t' && c != '\n' && c != '\r')
              g = string_catn(g, s, 1);
+         if (!g) return US"no bh= value";
          al->bh.data = string_from_gstring(g);
          al->bh.len = g->ptr;
-         gstring_reset_unused(g);
+         gstring_release_unused(g);
          break;
        default:
          return US"b? tag";
@@ -1280,7 +1282,7 @@ for (;;)
   g = string_catn(g, US"\r\n\t  ", 5);
   }
 g = string_catn(g, US";\r\n", 3);
-gstring_reset_unused(g);
+gstring_release_unused(g);
 string_from_gstring(g);
 return g;
 }
@@ -1698,7 +1700,7 @@ if (g)
 
 if (sigheaders) g = string_catn(g, sigheaders->s, sigheaders->ptr);
 (void) string_from_gstring(g);
-gstring_reset_unused(g);
+gstring_release_unused(g);
 return g;
 }