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

Hans Leidekker hans at codeweavers.com
Wed Dec 14 04:34:55 CST 2016


On Wed, 2016-12-14 at 11:18 +0100, Henri Verbeet wrote:
> On 14 December 2016 at 11:02, Hans Leidekker <hans at codeweavers.com> wrote:
> > 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
> >
> That mentions limitations wrt. precision, rounding and fp exceptions,
> but from that page it's not obvious to me how that results in the
> mentioned stack corruption.

I didn't debug this (and I don't feel like it to be honest) but there
are loops in the formatting code which terminate depending on the
precision and rounding of long double operations. Valgrind can't match
the precision of hardware because it uses 64-bit numbers internally to
represent long doubles.





More information about the wine-devel mailing list