From: Марк К. <soc...@gm...> - 2011-10-13 14:41:11
|
epoll_create(flags): EPOLL_CLOEXEC is not defined. I see some number instead of EPOLL_CLOEXEC in first argument of this syscall. -- Segmentation fault |
From: Mike F. <va...@ge...> - 2011-10-14 02:22:08
Attachments:
signature.asc
|
On Thursday 13 October 2011 10:40:59 Марк Коренберг wrote: > epoll_create(flags): EPOLL_CLOEXEC is not defined. I see some number > instead of EPOLL_CLOEXEC in first argument of this syscall. epoll_create() does not take flags, it takes a size. epoll_create1() takes flags. and the latter incorrectly parses its flags like open(). i'll post a patch shortly. -mike |
From: Mike F. <va...@ge...> - 2011-10-14 02:33:51
|
* desc.c (epollflags): Define. (sys_epoll_create1): Use epollflags to printflags. Change "O" to "EPOLL". Reported-by: Марк Коренберг <soc...@gm...> Signed-off-by: Mike Frysinger <va...@ge...> --- desc.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/desc.c b/desc.c index fad6cfe..ee9aacc 100644 --- a/desc.c +++ b/desc.c @@ -694,11 +694,21 @@ sys_epoll_create(struct tcb *tcp) return 0; } +static const struct xlat epollflags[] = { +#ifdef EPOLL_CLOEXEC + { EPOLL_CLOEXEC, "EPOLL_CLOEXEC" }, +#endif +#ifdef EPOLL_NONBLOCK + { EPOLL_NONBLOCK, "EPOLL_NONBLOCK" }, +#endif + { 0, NULL } +}; + int sys_epoll_create1(struct tcb *tcp) { if (entering(tcp)) - printflags(open_mode_flags, tcp->u_arg[0], "O_???"); + printflags(epollflags, tcp->u_arg[0], "EPOLL_???"); return 0; } -- 1.7.6.1 |
From: Dmitry V. L. <ld...@al...> - 2011-10-14 22:12:06
|
On Thu, Oct 13, 2011 at 10:33:45PM -0400, Mike Frysinger wrote: > * desc.c (epollflags): Define. > (sys_epoll_create1): Use epollflags to printflags. Change "O" to "EPOLL". Applied and pushed, thanks. -- ldv |