Fix: erroneous usage of addr parameter in mmap()
[lttng-tools.git] / tests / regression / kernel / select_poll_epoll.c
index e0e92fd381c8980499059aea44c77525b2922fd2..592fbcab8809223ffb2104572566eb423c22f1f9 100644 (file)
@@ -655,7 +655,11 @@ void stress_ppoll(int *fds, int value)
                do_ppoll(fds, ufds);
        }
        stop_thread = 1;
-       pthread_join(writer, NULL);
+       ret = pthread_join(writer, NULL);
+       if (ret) {
+               fprintf(stderr, "[error] pthread_join\n");
+               goto end;
+       }
 end:
        return;
 }
@@ -719,17 +723,15 @@ void epoll_pwait_concurrent_munmap(void)
        int ret, epollfd, i, fds[MAX_FDS];
        char buf[BUF_SIZE];
        struct epoll_event *epoll_event;
-       void *addr = NULL;
        pthread_t writer;
 
-
        epollfd = epoll_create(MAX_FDS);
        if (epollfd < 0) {
                perror("[eppoll] create");
                goto end;
        }
 
-       epoll_event = mmap(addr, MAX_FDS * sizeof(struct epoll_event),
+       epoll_event = mmap(NULL, MAX_FDS * sizeof(struct epoll_event),
                        PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS,
                        -1, 0);
        if (epoll_event == MAP_FAILED) {
@@ -755,7 +757,7 @@ void epoll_pwait_concurrent_munmap(void)
                        (void *) epoll_event);
        if (ret != 0) {
                fprintf(stderr, "[error] pthread_create\n");
-               goto end;
+               goto end_unmap;
        }
 
        ret = epoll_pwait(epollfd, epoll_event, 1, 1, NULL);
@@ -773,8 +775,11 @@ void epoll_pwait_concurrent_munmap(void)
        }
 
        stop_thread = 1;
-       pthread_join(writer, NULL);
-
+       ret = pthread_join(writer, NULL);
+       if (ret) {
+               fprintf(stderr, "[error] pthread_join\n");
+               goto end_unmap;
+       }
 end_unmap:
        for (i = 0; i < MAX_FDS; i++) {
                ret = close(fds[i]);
@@ -783,7 +788,7 @@ end_unmap:
                }
        }
 
-       ret = munmap(addr, MAX_FDS * sizeof(struct epoll_event));
+       ret = munmap(epoll_event, MAX_FDS * sizeof(struct epoll_event));
        if (ret != 0) {
                perror("munmap");
        }
This page took 0.025344 seconds and 5 git commands to generate.