projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: erroneous usage of addr parameter in mmap()
[lttng-tools.git]
/
tests
/
regression
/
kernel
/
select_poll_epoll.c
diff --git
a/tests/regression/kernel/select_poll_epoll.c
b/tests/regression/kernel/select_poll_epoll.c
index e0e92fd381c8980499059aea44c77525b2922fd2..592fbcab8809223ffb2104572566eb423c22f1f9 100644
(file)
--- a/
tests/regression/kernel/select_poll_epoll.c
+++ b/
tests/regression/kernel/select_poll_epoll.c
@@
-655,7
+655,11
@@
void stress_ppoll(int *fds, int value)
do_ppoll(fds, ufds);
}
stop_thread = 1;
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;
}
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;
int ret, epollfd, i, fds[MAX_FDS];
char buf[BUF_SIZE];
struct epoll_event *epoll_event;
- void *addr = NULL;
pthread_t writer;
pthread_t writer;
-
epollfd = epoll_create(MAX_FDS);
if (epollfd < 0) {
perror("[eppoll] create");
goto end;
}
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) {
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");
(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);
}
ret = epoll_pwait(epollfd, epoll_event, 1, 1, NULL);
@@
-773,8
+775,11
@@
void epoll_pwait_concurrent_munmap(void)
}
stop_thread = 1;
}
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]);
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");
}
if (ret != 0) {
perror("munmap");
}
This page took
0.027142 seconds
and
5
git commands to generate.