Module Name: src
Committed By: apb
Date: Sat Jun 14 08:18:24 UTC 2014
Modified Files:
src/lib/libc/gen: fmtcheck.3 fmtcheck.c
Log Message:
Teach fmtcheck(3) that a pointer and a long are not the same.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libc/gen/fmtcheck.3
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/gen/fmtcheck.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/gen/fmtcheck.3
diff -u src/lib/libc/gen/fmtcheck.3:1.7 src/lib/libc/gen/fmtcheck.3:1.8
--- src/lib/libc/gen/fmtcheck.3:1.7 Mon Mar 9 19:24:26 2009
+++ src/lib/libc/gen/fmtcheck.3 Sat Jun 14 08:18:24 2014
@@ -1,4 +1,4 @@
-.\" $NetBSD: fmtcheck.3,v 1.7 2009/03/09 19:24:26 joerg Exp $
+.\" $NetBSD: fmtcheck.3,v 1.8 2014/06/14 08:18:24 apb Exp $
.\"
.\" Copyright (c) 2000 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -26,7 +26,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd October 17, 2000
+.Dd June 14, 2014
.Dt FMTCHECK 3
.Os
.Sh NAME
@@ -77,11 +77,13 @@ Also, any text other than the format spe
.Pp
Note that the formats may be quite different as long as they accept the
same parameters.
-For example, "%p %o %30s %#llx %-10.*e %n" is
+For example, "%ld %o %30s %#llx %-10.*e %n" is
compatible with "This number %lu %d%% and string %s has %qd numbers
and %.*g floats (%n)."
However, "%o" is not equivalent to "%lx" because
-the first requires an integer and the second requires a long.
+the first requires an integer and the second requires a long,
+and "%p" is not equivalent to "%lu" because
+the first requires a pointer and the second requires a long.
.Sh RETURN VALUES
If
.Fa fmt_suspect
Index: src/lib/libc/gen/fmtcheck.c
diff -u src/lib/libc/gen/fmtcheck.c:1.8 src/lib/libc/gen/fmtcheck.c:1.9
--- src/lib/libc/gen/fmtcheck.c:1.8 Mon Apr 28 20:22:59 2008
+++ src/lib/libc/gen/fmtcheck.c Sat Jun 14 08:18:24 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: fmtcheck.c,v 1.8 2008/04/28 20:22:59 martin Exp $ */
+/* $NetBSD: fmtcheck.c,v 1.9 2014/06/14 08:18:24 apb Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: fmtcheck.c,v 1.8 2008/04/28 20:22:59 martin Exp $");
+__RCSID("$NetBSD: fmtcheck.c,v 1.9 2014/06/14 08:18:24 apb Exp $");
#endif
#include "namespace.h"
@@ -49,6 +49,7 @@ enum __e_fmtcheck_types {
FMTCHECK_INT,
FMTCHECK_LONG,
FMTCHECK_QUAD,
+ FMTCHECK_POINTER,
FMTCHECK_SHORTPOINTER,
FMTCHECK_INTPOINTER,
FMTCHECK_LONGPOINTER,
@@ -149,7 +150,7 @@ get_next_format_from_precision(const cha
if (*f == 'p') {
if (sh + lg + quad + longdouble)
RETURN(pf,f,FMTCHECK_UNKNOWN);
- RETURN(pf,f,FMTCHECK_LONG);
+ RETURN(pf,f,FMTCHECK_POINTER);
}
RETURN(pf,f,FMTCHECK_UNKNOWN);
/*NOTREACHED*/