fix invalid access in aio notification
authorRich Felker <dalias@aerifal.cx>
Sun, 16 Jun 2013 14:39:02 +0000 (10:39 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 16 Jun 2013 14:39:02 +0000 (10:39 -0400)
issue found and patch provided by Jens Gustedt. after the atomic store
to the error code field of the aiocb, the application is permitted to
free or reuse the storage, so further access is invalid. instead, use
the local copy that was already made.

src/aio/aio_readwrite.c

index e4c95aa..666372d 100644 (file)
@@ -51,7 +51,7 @@ static void *io_thread(void *p)
 
        __aio_wake();
 
 
        __aio_wake();
 
-       switch (cb->aio_sigevent.sigev_notify) {
+       switch (sev.sigev_notify) {
        case SIGEV_SIGNAL:
                notify_signal(&sev);
                break;
        case SIGEV_SIGNAL:
                notify_signal(&sev);
                break;