On 15 May 2014, at 17:17, Arran Cudbard-Bell <a.cudbardb@freeradius.org> wrote:
On 15 May 2014, at 15:33, Alan DeKok <aland@deployingradius.com> wrote:
Stefan Paetow wrote:
Just to confirm, I’ve been able to reproduce on my CentOS 6.5 system with an RPM version of this.
I've pushed a fix. It turns out that changing a "char*" pointer to a "char" variable causes problems.
Arran owes me a beer.
I do *sigh*.
I've added a line to the build matrix to build with -O2 and various env variables which enabled extra checks in Malloc. Hopefully one of those things will catch this sort of stupidity in future.
The compiler can't catch these issues as were taking the pointer or an offset assigning it to a void* and then writing to it as the config is parsed. None of the normal type checking works.
Just a heads up, memory scribbling is now turned on by default in builds against glibc with --enable-developer (or from .git). If there are any use after free issues, or instances where uninitialised memory is accessed it's very likely the server will crash. This will also likely uncover defects in our dependencies as I imagine malloc and free will work in the same way for those libraries. So if you suddenly start seeing crashes in testing when you didn't before that's most likely why. I think were also to need to do RC releases a couple of week before minor releases just to check that nobody has any issues until the test suite is more comprehensive. -Arran Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS Development Team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2