From 38f44aee08d2e6bfb90e162a93d9491911ae353c Mon Sep 17 00:00:00 2001 From: hno <> Date: Mon, 12 Aug 2002 05:12:55 +0000 Subject: [PATCH] Bugfix on swapout of small files causing reuse after free. --- src/fs/aufs/store_io_aufs.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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"); -- 2.47.2