1. EOF was returned when the buffer size was larger than INT_MAX. This
case has very little to do with the output size being larger than INT_MAX. 2. The new #include of <limits.h> was disordered. 3. The new declaration of `on' was disordered (integer types go together). 4. Testing an unsigned value for > 0 was fishy. Submitted by: bde
This commit is contained in:
parent
069db8db47
commit
8c6d2f42e1
@ -39,16 +39,16 @@
|
||||
static char sccsid[] = "@(#)snprintf.c 8.1 (Berkeley) 6/4/93";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: snprintf.c,v 1.9 1997/12/24 23:02:40 ache Exp $";
|
||||
"$Id: snprintf.c,v 1.10 1997/12/24 23:54:13 ache Exp $";
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#if __STDC__
|
||||
#include <stdarg.h>
|
||||
#else
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
|
||||
#if __STDC__
|
||||
int
|
||||
@ -62,16 +62,16 @@ snprintf(str, n, fmt, va_alist)
|
||||
va_dcl
|
||||
#endif
|
||||
{
|
||||
size_t on;
|
||||
int ret;
|
||||
va_list ap;
|
||||
FILE f;
|
||||
size_t on;
|
||||
|
||||
on = n;
|
||||
if (n > 0)
|
||||
if (n != 0)
|
||||
n--;
|
||||
if (n > INT_MAX)
|
||||
return (EOF);
|
||||
n = INT_MAX;
|
||||
#if __STDC__
|
||||
va_start(ap, fmt);
|
||||
#else
|
||||
|
@ -39,11 +39,11 @@
|
||||
static char sccsid[] = "@(#)vsnprintf.c 8.1 (Berkeley) 6/4/93";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: vsnprintf.c,v 1.9 1997/12/24 23:02:47 ache Exp $";
|
||||
"$Id: vsnprintf.c,v 1.10 1997/12/24 23:54:19 ache Exp $";
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int
|
||||
vsnprintf(str, n, fmt, ap)
|
||||
@ -52,15 +52,15 @@ vsnprintf(str, n, fmt, ap)
|
||||
const char *fmt;
|
||||
_BSD_VA_LIST_ ap;
|
||||
{
|
||||
size_t on;
|
||||
int ret;
|
||||
FILE f;
|
||||
size_t on;
|
||||
|
||||
on = n;
|
||||
if (n > 0)
|
||||
if (n != 0)
|
||||
n--;
|
||||
if (n > INT_MAX)
|
||||
return (EOF);
|
||||
n = INT_MAX;
|
||||
f._file = -1;
|
||||
f._flags = __SWR | __SSTR;
|
||||
f._bf._base = f._p = (unsigned char *)str;
|
||||
|
Loading…
Reference in New Issue
Block a user