Avoid release of store if there have been later allocations. Bug 2199
[exim.git] / src / src / spool_mbox.c
index de5830d645bd11030d0e6b964f7a557b8d27ffdb..16b0a332cc73bdd4c1c95bfb477199cfbce34f21 100644 (file)
@@ -4,7 +4,7 @@
 
 /* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003 - 2015
  * License: GPL
- * Copyright (c) The Exim Maintainers 2016
+ * Copyright (c) The Exim Maintainers 2017
  */
 
 /* Code for setting up a MBOX style spool file inside a /scan/<msgid>
@@ -216,8 +216,7 @@ if (spool_mbox_ok && !no_mbox_unspool)
 
   mbox_path = string_sprintf("%s/scan/%s", spool_directory, spooled_message_id);
 
-  tempdir = opendir(CS mbox_path);
-  if (!tempdir)
+  if (!(tempdir = opendir(CS mbox_path)))
     {
     debug_printf("Unable to opendir(%s): %s\n", mbox_path, strerror(errno));
     /* Just in case we still can: */
@@ -225,7 +224,7 @@ if (spool_mbox_ok && !no_mbox_unspool)
     return;
     }
   /* loop thru dir & delete entries */
-  while((entry = readdir(tempdir)) != NULL)
+  while((entry = readdir(tempdir)))
     {
     uschar *name = US entry->d_name;
     int dummy;
@@ -233,7 +232,7 @@ if (spool_mbox_ok && !no_mbox_unspool)
 
     file_path = string_sprintf("%s/%s", mbox_path, name);
     debug_printf("unspool_mbox(): unlinking '%s'\n", file_path);
-    dummy = unlink(CS file_path);
+    dummy = unlink(CS file_path); dummy = dummy;       /* compiler quietening */
     }
 
   closedir(tempdir);