Replace the store_release() internal interface, which was excessively unsafe.
[exim.git] / src / src / string.c
index 2e919e6d9761451b7665c7f4643aa929df41a184..81aacb94b1f6bd6f9767251a75df5a0994b0e393 100644 (file)
@@ -1102,13 +1102,7 @@ was the last item on the dynamic memory stack. This is the case if it matches
 store_last_get. */
 
 if (!store_extend(g->s, oldsize, g->size))
-  {
-  BOOL release_ok = store_last_get[store_pool] == g->s;
-  uschar *newstring = store_get(g->size);
-  memcpy(newstring, g->s, p);
-  if (release_ok) store_release(g->s);
-  g->s = newstring;
-  }
+  g->s = store_newblock(g->s, g->size, p);
 }