> 
> > Changelog:
> > * dlls/user/wsprintf.c Jaco Greeff <[EMAIL PROTECTED]>
> > - Changed the wsprintf[A|W] and wvsprintf[A|W] functions to
> >   determine the size of the destination buffer before writing
> >   to it. Previously the size was hardcoded to 1024 bytes.
> 
> The size is supposed to be hardcoded to 1024, that's how wsprintf
> works. You can't make it dynamic since the buffer is allocated by the
> application.

Seems to me (from info in a later post) that M$ wsprintf uses an
internal temporary buffer that has a size of 1024 - thus resticting
the user to a buffer size of 1024,

The actual size of the user buffer cannot be determined - hence
the common 'buffer overflow' issues with sprintf.

The C standard now includes snprintf() where the application passes
in the length of the target buffer.  I guess M$ might follow :-)

Some systems also have an asprintf() routine which will malloc() a
buffer that the caller must free().

        David

-- 
David Laight: [EMAIL PROTECTED]

Reply via email to