[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
64bit issue in libraries/liblunicode/ucdata/ucdata.c causes slapd to dump core (ITS#1960)
Full_Name: Ralf Haferkamp
Version: HEAD
OS: LInux on IA64
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (213.95.15.201)
At the top of the file the following struct is defined:
typedef struct {
unsigned short bom;
unsigned short cnt;
union {
unsigned long bytes;
unsigned short len[2];
} size;
} _ucheader_t;
The type "long" is however 8 bytes long on (most) 64Bit Archs. So the union
"size" make some trouble, when you access it through the len[] array.
One workaround could be to change the "long" to "uint32_t" which is available on
Linux but I am not sure how portable this is. Is there a "uint32_t" on BSD?
If I make this change slapd seems to work flawlessly. All test cases succeed.