Fix a buffer overrun on Linux/PPC64.

The buffer in realToMangleBuffer() is too small for a longdouble.
This commit is contained in:
kai
2013-03-24 19:42:18 +01:00
parent b13f3d3164
commit 312a85ce01

View File

@@ -2640,7 +2640,12 @@ void realToMangleBuffer(OutBuffer *buf, real_t value)
buf->writestring("NAN"); // no -NAN bugs
else
{
#if IN_LLVM
// The buffer is too small for a longdouble on PPC.
char buffer[36];
#else
char buffer[32];
#endif
int n = ld_sprint(buffer, 'A', value);
assert(n > 0 && n < sizeof(buffer));
for (int i = 0; i < n; i++)