taint enforce: file access backstops
[exim.git] / src / src / transports / queuefile.c
index cde6e53c129f87db7ab37c64d513d61d8b6cd1ce..4339d1fdd0773efe9bbfd2d5a4f6749d48d721f1 100644 (file)
@@ -74,14 +74,13 @@ copy_spool_file(int dst, int src)
 {
 int i, j;
 uschar buffer[16384];
-uschar * s;
 
 if (lseek(src, 0, SEEK_SET) != 0)
   return FALSE;
 
 do
   if ((j = read(src, buffer, sizeof(buffer))) > 0)
-    for (s = buffer; (i = write(dst, s, j)) != j; s += i, j -= i)
+    for (uschar * s = buffer; (i = write(dst, s, j)) != j; s += i, j -= i)
       if (i < 0)
        return FALSE;
   else if (j < 0)
@@ -135,11 +134,11 @@ else                                      /* use data copy */
     tb->name, srcpath, dstpath);
 
   if (  (s = dstpath,
-        (dstfd = openat(ddfd, CCS filename, O_RDWR|O_CREAT|O_EXCL, SPOOL_MODE))
+        (dstfd = exim_openat4(ddfd, CCS filename, O_RDWR|O_CREAT|O_EXCL, SPOOL_MODE))
         < 0
        )
      ||    is_hdr_file
-       && (s = srcpath, (srcfd = openat(sdfd, CCS filename, O_RDONLY)) < 0)
+       && (s = srcpath, (srcfd = exim_openat(sdfd, CCS filename, O_RDONLY)) < 0)
      )
     op = US"opening";