Check syscall return values.
[exim.git] / src / src / spool_in.c
index 674780475ecae8e41bc5e2e384ff737a12a8a69c..a546b65216c57bd88c3a4774bfdaf2e9fda10ca5 100644 (file)
@@ -718,8 +718,8 @@ while ((n = fgetc(f)) != EOF)
   int i;
 
   if (!isdigit(n)) goto SPOOL_FORMAT_ERROR;
-  (void)ungetc(n, f);
-  (void)fscanf(f, "%d%c ", &n, flag);
+  if(ungetc(n, f) == EOF  ||  fscanf(f, "%d%c ", &n, flag) == EOF)
+    goto SPOOL_READ_ERROR;
   if (flag[0] != '*') message_size += n;  /* Omit non-transmitted headers */
 
   if (read_headers)