diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/modules/vfs_aio_fork.c | 1 | ||||
-rw-r--r-- | source3/modules/vfs_aio_pthread.c | 3 | ||||
-rw-r--r-- | source3/smbd/aio.c | 3 |
3 files changed, 4 insertions, 3 deletions
diff --git a/source3/modules/vfs_aio_fork.c b/source3/modules/vfs_aio_fork.c index 01eb97de86..bcd7c6ae2d 100644 --- a/source3/modules/vfs_aio_fork.c +++ b/source3/modules/vfs_aio_fork.c @@ -434,6 +434,7 @@ static void handle_aio_completion(struct event_context *event_ctx, aio_ex = (struct aio_extra *)child->aiocb->aio_sigevent.sigev_value.sival_ptr; smbd_aio_complete_aio_ex(aio_ex); + TALLOC_FREE(aio_ex); } static int aio_child_destructor(struct aio_child *child) diff --git a/source3/modules/vfs_aio_pthread.c b/source3/modules/vfs_aio_pthread.c index 82611b0a7b..b6d4e1ef35 100644 --- a/source3/modules/vfs_aio_pthread.c +++ b/source3/modules/vfs_aio_pthread.c @@ -296,7 +296,7 @@ static void aio_pthread_handle_completion(struct event_context *event_ctx, DEBUG(10,("aio_pthread_handle_completion: jobid %d completed\n", jobid )); - + TALLOC_FREE(aio_ex); } /************************************************************************ @@ -424,6 +424,7 @@ static void aio_pthread_handle_immediate(struct tevent_context *ctx, TALLOC_FREE(pjobid); aio_ex = (struct aio_extra *)pd->aiocb->aio_sigevent.sigev_value.sival_ptr; smbd_aio_complete_aio_ex(aio_ex); + TALLOC_FREE(aio_ex); } /************************************************************************ diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c index 07b8388fba..44081f69a0 100644 --- a/source3/smbd/aio.c +++ b/source3/smbd/aio.c @@ -67,6 +67,7 @@ static void smbd_aio_signal_handler(struct tevent_context *ev_ctx, info->si_value.sival_ptr; smbd_aio_complete_aio_ex(aio_ex); + TALLOC_FREE(aio_ex); } @@ -931,8 +932,6 @@ void smbd_aio_complete_aio_ex(struct aio_extra *aio_ex) if (!handle_aio_completed(aio_ex, &ret)) { return; } - - TALLOC_FREE(aio_ex); } /**************************************************************************** |