> > > 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]