Commit Graph

3 Commits

Author SHA1 Message Date
Anatol Belski
d2a784baa6 Fixed bug #64769 mbstring PHPTs crash on Windows x64
The tricky business going there in oniguruma is saving a pointer
in an int variable, passing that variable into a function and making
it a pointer again. On 64bit windows casting a pointer to a 32 bit
int will truncate that pointer. This kind of things won't work on
Windows x64.

[SNIPPET]
unsigned long ul0[2], ul1, *ul2;

ul0[0] = 42uL;
ul0[0] = 24uL;

ul1 = (unsigned long)ul0;
ul2 = (unsigned long *)ul1;

/* now it's broken, accessing ul2[0] will crash. */
[/SNIPPET]

To make it portable, ULONG_PTR should be used in this case.

In oniguruma this behaviour is to see at least in the following
codepath:

ext/mbstring/oniguruma/enc/unicode.c:10938
ext/mbstring/oniguruma/st.c:308
ext/mbstring/oniguruma/enc/unicode.c:10859
2013-05-08 18:58:32 +02:00
Jani Taskinen
a0f3cf5cc4 MFB: Thanks to the "maintainers" who are too lazy to commit FIRST to HEAD! 2009-04-20 17:06:03 +00:00
Moriyoshi Koizumi
5b5e012bc2 - Update libmbfl (fixes bug #30549 and #31911).
- Update oniguruma to 3.7.0
2005-02-20 22:18:09 +00:00