webservices: allocate enough memory for WS_XML_TEXT_TYPE_DOUBLE (Valgrind) (try 2)

Hans Leidekker hans at codeweavers.com
Wed Dec 14 04:02:09 CST 2016


On Wed, 2016-12-14 at 10:20 +0100, Henri Verbeet wrote:
> On 13 December 2016 at 20:17, Austin English <austinenglish at gmail.com> wrote:
> > +        /* buf was originally [24], increased to 48 to prevent a stack smashing error when running tests under Valgrind */
> > +        unsigned char buf[48]; /* "-1.1111111111111111E-308". */
> The more interesting comment would perhaps be what actually happens
> and why this helps.

Valgrind doesn't really support 80-bit floating point arithmetic:
http://www.valgrind.org/docs/manual/manual-core.html#manual-core.limits

> One thing I do notice is that while 24 chars would be enough to hold
> "-1.1111111111111111E-308", that doesn't leave any room for the \0
> terminator, while the other cases above this one do seem to include
> space for that.

The other cases need space for \0 because they use sprintf. Length
is always passed so callers should not depend on zero-termination.





More information about the wine-devel mailing list