Use _snprintf for snprinf in Microsoft C.
More than a decade later, Microsoft C does not support the C99 standard. It's good that _snprintf has a different name, since it does not guarantee that the result is null terminated, as does snprintf. However where _snprintf is used under Microsoft C, the destination string is assured to be long enough, so this will not be a problem. This occurs in two places, both in gzlib.c. Where sprintf functionality is needed by gzprintf, vsnprintf is used in the case of Microsoft C.
This commit is contained in:
8
gzguts.h
8
gzguts.h
@@ -88,6 +88,14 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* unlike snprintf (which is required in C99, yet still not supported by
|
||||||
|
Microsoft more than a decade later!), _snprintf does not guarantee null
|
||||||
|
termination of the result -- however this is only used in gzlib.c where
|
||||||
|
the result is assured to fit in the space provided */
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
# define snprintf _snprintf
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef local
|
#ifndef local
|
||||||
# define local static
|
# define local static
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user