Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-6]: src/lib/libc/stdio Pull up following revision(s) (requested b...
details: https://anonhg.NetBSD.org/src/rev/979a872e4eee
branches: netbsd-6
changeset: 776758:979a872e4eee
user: msaitoh <msaitoh%NetBSD.org@localhost>
date: Mon Nov 03 21:22:28 2014 +0000
description:
Pull up following revision(s) (requested by christos in ticket #1161):
lib/libc/stdio/printf.3: revision 1.64 via patch
lib/libc/stdio/vsnprintf.c: revision 1.28 via patch
lib/libc/stdio/vsnprintf_ss.c: revision 1.13 via patch
Return EOVERFLOW like FreeBSD does if the buffer size exceeds INT_MAX
(well FreeBSD documents INT_MAX + 1, but in the code it is INT_MAX).
Return EOVERFLOW like FreeBSD does if the buffer size exceeds INT_MAX
(well FreeBSD documents INT_MAX + 1, but in the code it is INT_MAX).
diffstat:
lib/libc/stdio/printf.3 | 11 +++++++++--
lib/libc/stdio/vsnprintf.c | 10 +++++-----
lib/libc/stdio/vsnprintf_ss.c | 10 +++++-----
3 files changed, 19 insertions(+), 12 deletions(-)
diffs (94 lines):
diff -r 8c6b03716002 -r 979a872e4eee lib/libc/stdio/printf.3
--- a/lib/libc/stdio/printf.3 Mon Nov 03 21:17:45 2014 +0000
+++ b/lib/libc/stdio/printf.3 Mon Nov 03 21:22:28 2014 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: printf.3,v 1.58 2010/12/26 12:39:54 jnemeth Exp $
+.\" $NetBSD: printf.3,v 1.58.8.1 2014/11/03 21:22:28 msaitoh Exp $
.\"
.\" Copyright (c) 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -33,7 +33,7 @@
.\"
.\" @(#)printf.3 8.1 (Berkeley) 6/4/93
.\"
-.Dd December 26, 2010
+.Dd September 29, 2014
.Dt PRINTF 3
.Os
.Sh NAME
@@ -793,6 +793,13 @@
An invalid wide-character code was encountered.
.It Bq Er ENOMEM
Insufficient storage space is available.
+.It Bq Er EOVERFLOW
+The
+.Fa size
+argument exceeds
+.Dv INT_MAX ,
+or the return value would be too large to be represented by an
+.Vt int .
.El
.Sh SEE ALSO
.Xr printf 1 ,
diff -r 8c6b03716002 -r 979a872e4eee lib/libc/stdio/vsnprintf.c
--- a/lib/libc/stdio/vsnprintf.c Mon Nov 03 21:17:45 2014 +0000
+++ b/lib/libc/stdio/vsnprintf.c Mon Nov 03 21:22:28 2014 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: vsnprintf.c,v 1.23 2011/07/17 20:54:34 joerg Exp $ */
+/* $NetBSD: vsnprintf.c,v 1.23.4.1 2014/11/03 21:22:28 msaitoh Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -37,7 +37,7 @@
#if 0
static char sccsid[] = "@(#)vsnprintf.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: vsnprintf.c,v 1.23 2011/07/17 20:54:34 joerg Exp $");
+__RCSID("$NetBSD: vsnprintf.c,v 1.23.4.1 2014/11/03 21:22:28 msaitoh Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -69,9 +69,9 @@
_DIAGASSERT(n == 0 || str != NULL);
_DIAGASSERT(fmt != NULL);
- if ((int)n < 0) {
- errno = EINVAL;
- return (-1);
+ if (n > INT_MAX) {
+ errno = EOVERFLOW;
+ return -1;
}
_FILEEXT_SETUP(&f, &fext);
diff -r 8c6b03716002 -r 979a872e4eee lib/libc/stdio/vsnprintf_ss.c
--- a/lib/libc/stdio/vsnprintf_ss.c Mon Nov 03 21:17:45 2014 +0000
+++ b/lib/libc/stdio/vsnprintf_ss.c Mon Nov 03 21:22:28 2014 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: vsnprintf_ss.c,v 1.10 2011/07/17 20:54:34 joerg Exp $ */
+/* $NetBSD: vsnprintf_ss.c,v 1.10.4.1 2014/11/03 21:22:28 msaitoh Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -37,7 +37,7 @@
#if 0
static char sccsid[] = "@(#)vsnprintf.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: vsnprintf_ss.c,v 1.10 2011/07/17 20:54:34 joerg Exp $");
+__RCSID("$NetBSD: vsnprintf_ss.c,v 1.10.4.1 2014/11/03 21:22:28 msaitoh Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -143,9 +143,9 @@
_DIAGASSERT(slen == 0 || sbuf != NULL);
_DIAGASSERT(fmt0 != NULL);
- if ((int)slen < 0) {
- errno = EINVAL;
- return (-1);
+ if (slen > INT_MAX) {
+ errno = EOVERFLOW;
+ return -1;
}
tailp = sbuf + slen;
Home |
Main Index |
Thread Index |
Old Index