]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bugfix on swapout of small files causing reuse after free.
authorhno <>
Mon, 12 Aug 2002 05:12:55 +0000 (05:12 +0000)
committerhno <>
Mon, 12 Aug 2002 05:12:55 +0000 (05:12 +0000)
src/fs/aufs/store_io_aufs.cc

index e1ab3435c1ac5dba421891c18edc006e598b4178..18e4924643448a622eb1a9da0302cecac0cb8e14 100644 (file)
@@ -283,10 +283,13 @@ storeAufsOpenDone(int unused, void *my_data, int fd, int errflag)
     aiostate->fd = fd;
     commSetCloseOnExec(fd);
     fd_open(fd, FD_FILE, storeAufsDirFullPath(INDEXSD(sio->swap_dirn), sio->swap_filen, NULL));
-    if (FILE_MODE(sio->mode) == O_WRONLY)
-       storeAufsKickWriteQueue(sio);
-    else if (FILE_MODE(sio->mode) == O_RDONLY)
-       storeAufsKickReadQueue(sio);
+    if (FILE_MODE(sio->mode) == O_WRONLY) {
+       if (storeAufsKickWriteQueue(sio))
+           return;
+    } else if (FILE_MODE(sio->mode) == O_RDONLY) {
+       if (storeAufsKickReadQueue(sio))
+           return;
+    }
     if (aiostate->flags.close_request)
        storeAufsIOCallback(sio, errflag);
     debug(79, 3) ("storeAufsOpenDone: exiting\n");