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 e4c95aa2382405eadabdc61582d40bfbb6dd9eb8..666372db7b7da3c40ca3f46c955c9e10c1637ac6 100644 (file)
@@ -51,7 +51,7 @@ static void *io_thread(void *p)
 
        __aio_wake();
 
-       switch (cb->aio_sigevent.sigev_notify) {
+       switch (sev.sigev_notify) {
        case SIGEV_SIGNAL:
                notify_signal(&sev);
                break;