Missing and zero precision specifiers are different. Fixes bug #3646.

Jesse Allen the3dfxdude at gmail.com
Wed Oct 26 09:31:16 CDT 2005


On 10/26/05, Mike McCormack <mike at codeweavers.com> wrote:
> ChangeLog:
> Missing and zero precision specifiers are different.  Fixes bug #3646.
>
>   dlls/msvcrt/wcs.c |   14 ++++++++------
>   1 files changed, 8 insertions(+), 6 deletions(-)
>
>


That's fixed one of the precision bugs.  The other one is when the
precision is greater than approximately 40 bytes, we'll print past the
end of the buffer?

        /* deal with integers and floats using libc's printf */
        else if( pf_is_valid_format( flags.Format ) )
        {
            char fmt[20], number[40], *x = number;

            if( flags.FieldLength >= sizeof number )
                x = HeapAlloc( GetProcessHeap(), 0, flags.FieldLength+1 );

            pf_rebuild_format_string( fmt, &flags );

            if( pf_is_double_format( flags.Format ) )
                sprintf( number, fmt, va_arg(valist, double) );
            else
                sprintf( number, fmt, va_arg(valist, int) );



More information about the wine-patches mailing list