diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-11-18 23:25:46 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-11-18 23:25:46 +0000 |
commit | 1b1d36792e9d9c4ad9a67ad8bfc1a3be8f2104c1 (patch) | |
tree | 4523c0003244e52de8da34478fc4aa201cb778bf /debug | |
parent | fb67e07dfb5403e6008e60be9896ced594014fec (diff) | |
download | glibc-1b1d36792e9d9c4ad9a67ad8bfc1a3be8f2104c1.zip glibc-1b1d36792e9d9c4ad9a67ad8bfc1a3be8f2104c1.tar.gz glibc-1b1d36792e9d9c4ad9a67ad8bfc1a3be8f2104c1.tar.bz2 |
Update.
2004-11-18 Ulrich Drepper <drepper@redhat.com>
* libio/libio.h (_IO_FLAGS2_FORTIFY): Renamed from
_IO_FLAGS2_CHECK_PERCENT_N.
* debug/fprintff_chk.c: Adjust all users.
* debug/printf_chk.c: Likewise.
* debug/vfprintf_chk.c: Likewise.
* debug/vprintf_chk.c: Likewise.
* debug/vsnprintf_chk.c: Likewise.
* debug/vsprintf_chk.c: Likewise.
* stdio-common/vfprintf.c: Likewise. Detect missing %N$ formats.
* debug/tst-chk1.c: Test detection of missing %N$ formats.
Diffstat (limited to 'debug')
-rw-r--r-- | debug/fprintf_chk.c | 4 | ||||
-rw-r--r-- | debug/printf_chk.c | 4 | ||||
-rw-r--r-- | debug/tst-chk1.c | 17 | ||||
-rw-r--r-- | debug/vfprintf_chk.c | 4 | ||||
-rw-r--r-- | debug/vprintf_chk.c | 4 | ||||
-rw-r--r-- | debug/vsnprintf_chk.c | 2 | ||||
-rw-r--r-- | debug/vsprintf_chk.c | 2 |
7 files changed, 27 insertions, 10 deletions
diff --git a/debug/fprintf_chk.c b/debug/fprintf_chk.c index 77508b9..2b7d22b 100644 --- a/debug/fprintf_chk.c +++ b/debug/fprintf_chk.c @@ -31,14 +31,14 @@ __fprintf_chk (FILE *fp, int flag, const char *format, ...) _IO_acquire_lock (fp); if (flag > 0) - fp->_flags2 |= _IO_FLAGS2_CHECK_PERCENT_N; + fp->_flags2 |= _IO_FLAGS2_FORTIFY; va_start (ap, format); done = vfprintf (fp, format, ap); va_end (ap); if (flag > 0) - fp->_flags2 &= ~_IO_FLAGS2_CHECK_PERCENT_N; + fp->_flags2 &= ~_IO_FLAGS2_FORTIFY; _IO_release_lock (fp); return done; diff --git a/debug/printf_chk.c b/debug/printf_chk.c index d2b3873..86096b4 100644 --- a/debug/printf_chk.c +++ b/debug/printf_chk.c @@ -31,14 +31,14 @@ __printf_chk (int flag, const char *format, ...) _IO_acquire_lock (stdout); if (flag > 0) - stdout->_flags2 |= _IO_FLAGS2_CHECK_PERCENT_N; + stdout->_flags2 |= _IO_FLAGS2_FORTIFY; va_start (ap, format); done = vfprintf (stdout, format, ap); va_end (ap); if (flag > 0) - stdout->_flags2 &= ~_IO_FLAGS2_CHECK_PERCENT_N; + stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY; _IO_release_lock (stdout); return done; diff --git a/debug/tst-chk1.c b/debug/tst-chk1.c index 37320c3..0df660d 100644 --- a/debug/tst-chk1.c +++ b/debug/tst-chk1.c @@ -474,5 +474,22 @@ do_test (void) CHK_FAIL_END #endif + /* Check whether missing N$ formats are detected. */ + CHK_FAIL2_START + printf ("%3$d\n", 1, 2, 3, 4); + CHK_FAIL2_END + + CHK_FAIL2_START + fprintf (stdout, "%3$d\n", 1, 2, 3, 4); + CHK_FAIL2_END + + CHK_FAIL2_START + sprintf (buf, "%3$d\n", 1, 2, 3, 4); + CHK_FAIL2_END + + CHK_FAIL2_START + snprintf (buf, sizeof (buf), "%3$d\n", 1, 2, 3, 4); + CHK_FAIL2_END + return ret; } diff --git a/debug/vfprintf_chk.c b/debug/vfprintf_chk.c index a9e107d..c8e7c3b 100644 --- a/debug/vfprintf_chk.c +++ b/debug/vfprintf_chk.c @@ -30,12 +30,12 @@ __vfprintf_chk (FILE *fp, int flag, const char *format, va_list ap) _IO_acquire_lock (fp); if (flag > 0) - fp->_flags2 |= _IO_FLAGS2_CHECK_PERCENT_N; + fp->_flags2 |= _IO_FLAGS2_FORTIFY; done = vfprintf (fp, format, ap); if (flag > 0) - fp->_flags2 &= ~_IO_FLAGS2_CHECK_PERCENT_N; + fp->_flags2 &= ~_IO_FLAGS2_FORTIFY; _IO_release_lock (fp); return done; diff --git a/debug/vprintf_chk.c b/debug/vprintf_chk.c index f477f15..1fd5bcd 100644 --- a/debug/vprintf_chk.c +++ b/debug/vprintf_chk.c @@ -30,12 +30,12 @@ __vprintf_chk (int flag, const char *format, va_list ap) _IO_acquire_lock (stdout); if (flag > 0) - stdout->_flags2 |= _IO_FLAGS2_CHECK_PERCENT_N; + stdout->_flags2 |= _IO_FLAGS2_FORTIFY; done = vfprintf (stdout, format, ap); if (flag > 0) - stdout->_flags2 &= ~_IO_FLAGS2_CHECK_PERCENT_N; + stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY; _IO_release_lock (stdout); return done; diff --git a/debug/vsnprintf_chk.c b/debug/vsnprintf_chk.c index 850cd5a..a0fd4eb 100644 --- a/debug/vsnprintf_chk.c +++ b/debug/vsnprintf_chk.c @@ -58,7 +58,7 @@ __vsnprintf_chk (char *s, size_t maxlen, int flags, size_t slen, /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n can only come from read-only format strings. */ if (flags > 0) - sf.f._sbf._f._flags2 |= _IO_FLAGS2_CHECK_PERCENT_N; + sf.f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY; _IO_str_init_static_internal (&sf.f, s, maxlen - 1, s); ret = INTUSE(_IO_vfprintf) ((_IO_FILE *) &sf.f._sbf, format, args); diff --git a/debug/vsprintf_chk.c b/debug/vsprintf_chk.c index 8338328..f41c5fc 100644 --- a/debug/vsprintf_chk.c +++ b/debug/vsprintf_chk.c @@ -81,7 +81,7 @@ __vsprintf_chk (char *s, int flags, size_t slen, const char *format, /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n can only come from read-only format strings. */ if (flags > 0) - f._sbf._f._flags2 |= _IO_FLAGS2_CHECK_PERCENT_N; + f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY; ret = INTUSE(_IO_vfprintf) ((_IO_FILE *) &f._sbf, format, args); |