sizeof(struct epoll_event) wrong on amd64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lsb |
Fix Committed
|
Medium
|
Unassigned | ||
Mandriva |
Fix Released
|
High
|
Bug Description
The size of 'struct epoll_event' is wrong on AMD64 (16 bytes vs 12 bytes),
which causes some programs to crash (for example nginx).
The definition of 'struct epoll_event' in the spec (and in the actual LSB
headers) is missing a packed attribute:
http://
http://
In the kernel 'struct epoll_event' is expected to be packed on AMD64:
http://
[ I filed the bug against Core-Arch, but maybe its easier to just fix this in
the generic header with an ifdef like in the kernel header ]
I've checked the latest headers according to instructions from another
bugreport, and the bug is still there:
bzr branch http://
$ cat >epolltest.c <<EOF
#include <sys/epoll.h>
#include <stdio.h>
int main()
{
printf(
return 0;
}
EOF
$ /opt/lsb/bin/lsbcc epolltest.c && ./a.out
sizeof(struct epoll_event)=16
$ gcc epolltest.c && ./a.out
sizeof(struct epoll_event)=12
[reply] [-] Comment 1
Changed in mandriva: | |
importance: | Unknown → High |
status: | Unknown → Fix Released |