Message305187
In Modules/selectmodule.c it is assumed that the kevent structure is defined on FreeBSD and NetBSD as:
struct kevent {
uintptr_t ident;
short filter;
u_short flags;
u_int fflags;
intptr_t data;
uintptr_t udata;
};
and on OpenBSD as:
struct kevent {
u_int ident;
short filter;
u_short flags;
u_int fflags;
intptr_t data;
int udata;
};
Actually it is defined on FreeBSD as:
struct kevent {
uintptr_t ident;
short filter;
u_short flags;
u_int fflags;
intptr_t data;
void *udata;
};
On OpenBSD as:
struct kevent {
uintptr_t ident;
short filter;
u_short flags;
u_int fflags;
int64_t data;
void *udata;
};
And on NetBSD as:
struct kevent {
uintptr_t ident;
uint32_t filter;
uint32_t flags;
uint32_t fflags;
int64_t data;
intptr_t udata;
};
Other issues are related to rich comparison. Due to integer overflows the ordering is not transitive. The rich comparison protocol is not properly supported, comparing a kevent_event object with a non-kevent_event object don't falls back to the rich comparison methods of the right arguments. |
|
Date |
User |
Action |
Args |
2017-10-29 11:44:42 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, koobs |
2017-10-29 11:44:41 | serhiy.storchaka | set | messageid: <1509277481.96.0.213398074469.issue31893@psf.upfronthosting.co.za> |
2017-10-29 11:44:41 | serhiy.storchaka | link | issue31893 messages |
2017-10-29 11:44:41 | serhiy.storchaka | create | |
|