From: hno <> Date: Mon, 12 Aug 2002 05:12:55 +0000 (+0000) Subject: Bugfix on swapout of small files causing reuse after free. X-Git-Tag: SQUID_3_0_PRE1~851 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=38f44aee08d2e6bfb90e162a93d9491911ae353c;p=thirdparty%2Fsquid.git Bugfix on swapout of small files causing reuse after free. --- diff --git a/src/fs/aufs/store_io_aufs.cc b/src/fs/aufs/store_io_aufs.cc index e1ab3435c1..18e4924643 100644 --- a/src/fs/aufs/store_io_aufs.cc +++ b/src/fs/aufs/store_io_aufs.cc @@ -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");