summaryrefslogtreecommitdiffstats
path: root/libc
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-05-05 21:49:22 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-05-05 21:49:22 +0000
commitad534985ec3e01d37d46c50caa562f6482f48347 (patch)
treebef8cd34c71d6154bef579013e3aaf25c02760e2 /libc
parent8ec21d9ded4c05744b3f9388bf824a508d7c95c2 (diff)
parente2341d08fa4a4e0c22056c410fd34d3f93e06017 (diff)
downloadbionic-ad534985ec3e01d37d46c50caa562f6482f48347.zip
bionic-ad534985ec3e01d37d46c50caa562f6482f48347.tar.gz
bionic-ad534985ec3e01d37d46c50caa562f6482f48347.tar.bz2
Merge "Disable %n in printf and vfwprintf."
Diffstat (limited to 'libc')
-rw-r--r--libc/stdio/local.h1
-rw-r--r--libc/upstream-openbsd/lib/libc/stdio/vfprintf.c6
-rw-r--r--libc/upstream-openbsd/lib/libc/stdio/vfwprintf.c6
3 files changed, 11 insertions, 2 deletions
diff --git a/libc/stdio/local.h b/libc/stdio/local.h
index 5fb2292..907fd21 100644
--- a/libc/stdio/local.h
+++ b/libc/stdio/local.h
@@ -102,6 +102,7 @@ extern int __sdidinit;
#define FLOATING_POINT
#define PRINTF_WIDE_CHAR
#define SCANF_WIDE_CHAR
+#define NO_PRINTF_PERCENT_N
/* OpenBSD exposes these in <stdio.h>, but we only want them exposed to the implementation. */
__BEGIN_DECLS
diff --git a/libc/upstream-openbsd/lib/libc/stdio/vfprintf.c b/libc/upstream-openbsd/lib/libc/stdio/vfprintf.c
index 86b540e..7f8ff31 100644
--- a/libc/upstream-openbsd/lib/libc/stdio/vfprintf.c
+++ b/libc/upstream-openbsd/lib/libc/stdio/vfprintf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vfprintf.c,v 1.65 2014/03/19 05:17:01 guenther Exp $ */
+/* $OpenBSD: vfprintf.c,v 1.66 2014/05/03 12:36:45 deraadt Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
@@ -801,6 +801,7 @@ fp_common:
}
break;
#endif /* FLOATING_POINT */
+#ifndef NO_PRINTF_PERCENT_N
case 'n':
if (flags & LLONGINT)
*GETARG(long long *) = ret;
@@ -819,6 +820,7 @@ fp_common:
else
*GETARG(int *) = ret;
continue; /* no output */
+#endif /* NO_PRINTF_PERCENT_N */
case 'O':
flags |= LONGINT;
/*FALLTHROUGH*/
@@ -1317,6 +1319,7 @@ reswitch: switch (ch) {
ADDTYPE(T_DOUBLE);
break;
#endif /* FLOATING_POINT */
+#ifndef NO_PRINTF_PERCENT_N
case 'n':
if (flags & LLONGINT)
ADDTYPE(TP_LLONG);
@@ -1333,6 +1336,7 @@ reswitch: switch (ch) {
else
ADDTYPE(TP_INT);
continue; /* no output */
+#endif /* NO_PRINTF_PERCENT_N */
case 'O':
flags |= LONGINT;
/*FALLTHROUGH*/
diff --git a/libc/upstream-openbsd/lib/libc/stdio/vfwprintf.c b/libc/upstream-openbsd/lib/libc/stdio/vfwprintf.c
index 7cb08ea..745b4d9 100644
--- a/libc/upstream-openbsd/lib/libc/stdio/vfwprintf.c
+++ b/libc/upstream-openbsd/lib/libc/stdio/vfwprintf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vfwprintf.c,v 1.9 2014/03/19 05:17:01 guenther Exp $ */
+/* $OpenBSD: vfwprintf.c,v 1.10 2014/05/03 12:36:45 deraadt Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
@@ -784,6 +784,7 @@ fp_common:
}
break;
#endif /* FLOATING_POINT */
+#ifndef NO_PRINTF_PERCENT_N
case 'n':
if (flags & LLONGINT)
*GETARG(long long *) = ret;
@@ -802,6 +803,7 @@ fp_common:
else
*GETARG(int *) = ret;
continue; /* no output */
+#endif /* NO_PRINTF_PERCENT_N */
case 'O':
flags |= LONGINT;
/*FALLTHROUGH*/
@@ -1296,6 +1298,7 @@ reswitch: switch (ch) {
ADDTYPE(T_DOUBLE);
break;
#endif /* FLOATING_POINT */
+#ifndef NO_PRINTF_PERCENT_N
case 'n':
if (flags & LLONGINT)
ADDTYPE(TP_LLONG);
@@ -1312,6 +1315,7 @@ reswitch: switch (ch) {
else
ADDTYPE(TP_INT);
continue; /* no output */
+#endif /* NO_PRINTF_PERCENT_N */
case 'O':
flags |= LONGINT;
/*FALLTHROUGH*/