summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordas <das@FreeBSD.org>2004-05-02 10:55:05 +0000
committerdas <das@FreeBSD.org>2004-05-02 10:55:05 +0000
commit3640d9db93a1482436b84fbf47446b6e4d4b260d (patch)
tree233e044b5d68245bf69aef95f44b6704af16111f
parent746c90d1a04dda1ecc512577e2f81d851e62a3a5 (diff)
downloadFreeBSD-src-3640d9db93a1482436b84fbf47446b6e4d4b260d.zip
FreeBSD-src-3640d9db93a1482436b84fbf47446b6e4d4b260d.tar.gz
When *printf() and *scanf() are compiled without floating-point
support, fmtcheck() should not accept format strings that contain floating-point formats.
-rw-r--r--lib/libc/gen/fmtcheck.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libc/gen/fmtcheck.c b/lib/libc/gen/fmtcheck.c
index eb5326d..661cb8a 100644
--- a/lib/libc/gen/fmtcheck.c
+++ b/lib/libc/gen/fmtcheck.c
@@ -57,8 +57,10 @@ enum __e_fmtcheck_types {
FMTCHECK_QUADPOINTER,
FMTCHECK_PTRDIFFTPOINTER,
FMTCHECK_SIZETPOINTER,
+#ifndef NO_FLOATING_POINT
FMTCHECK_DOUBLE,
FMTCHECK_LONGDOUBLE,
+#endif
FMTCHECK_STRING,
FMTCHECK_WIDTH,
FMTCHECK_PRECISION,
@@ -149,6 +151,7 @@ get_next_format_from_precision(const char **pf)
RETURN(pf,f,FMTCHECK_UNKNOWN);
RETURN(pf,f,FMTCHECK_LONG);
}
+#ifndef NO_FLOATING_POINT
if (strchr("aAeEfFgG", *f)) {
if (longdouble)
RETURN(pf,f,FMTCHECK_LONGDOUBLE);
@@ -156,6 +159,7 @@ get_next_format_from_precision(const char **pf)
RETURN(pf,f,FMTCHECK_UNKNOWN);
RETURN(pf,f,FMTCHECK_DOUBLE);
}
+#endif
if (*f == 'c') {
if (sh + lg + quad + longdouble + ptrdifft + sizet)
RETURN(pf,f,FMTCHECK_UNKNOWN);
OpenPOWER on IntegriCloud