}
unsigned char *
-strrev (unsigned char *byte, int length)
+memrev (unsigned char *byte, int length)
{
unsigned char tmp_byte;
unsigned char *left = byte;
#if ! HAVE_SNPRINTF
int
-snprintf (char *str, size_t, char const *format, ...)
+snprintf (char *str, size_t n, char const *format, ...)
{
va_list ap;
va_start (ap, format);
int i = vsprintf (str, format, ap);
+ if (i > 0 && (unsigned) i > n)
+ assert (false);
va_end (ap);
return i;
}
#if ! HAVE_VSNPRINTF
int
-vsnprintf (char *str, size_t, char const *format, va_list args)
+vsnprintf (char *str, size_t n, char const *format, va_list args)
{
int i = vsprintf (str, format, args);
+ if (i > 0 && (unsigned) i > n)
+ assert (false);
return i;
}
#endif
(int (*) (void *, char const *, int)) fun.write,
(fpos_t (*) (void *, fpos_t, int)) fun.seek,
(int (*) (void *)) fun.close);
-
#endif
}
va_start (ap, format);
if (is_memory_stream (file))
{
- static char buf[1024];
+ static char buf[65536];
int i = vsnprintf (buf, sizeof (buf), format, ap);
- if (i == -1)
+ if (i == -1 || (unsigned) i > sizeof (buf))
assert (false);
return Memory_out_stream::writer (file, buf, i);
}