diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2009-02-24 15:37:33 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2009-02-24 15:37:33 +0000 |
commit | e3c18352ad5b571277af02106ddba18ca4f0243f (patch) | |
tree | 8bfd81a2eb49140d4b69225f4d103bf640d0f441 /tests | |
parent | c9296a1c40bbf5dd8db0a31f08a727b519c39d06 (diff) | |
download | mpfr-e3c18352ad5b571277af02106ddba18ca4f0243f.tar.gz |
tsprintf.c: added a test showing a buffer overflow in mpfr_vsnprintf.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@5990 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests')
-rw-r--r-- | tests/tsprintf.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/tsprintf.c b/tests/tsprintf.c index b58cfdee1..ee5563aeb 100644 --- a/tests/tsprintf.c +++ b/tests/tsprintf.c @@ -122,7 +122,13 @@ check_vsprintf (const char *expected, const char *fmt, ...) /* test mpfr_snprintf */ p = (int) (randlimb () % n0); + buffer[p] = 17; n1 = mpfr_vsnprintf (buffer, p, fmt, ap1); + if (buffer[p] != 17) + { + printf ("Buffer overflow in mpfr_vsnprintf for p = %d!\n", p); + exit (1); + } if ((p != 0 && n0 != n1) || (p == 0 && n1 != 0)) { printf ("Error in mpfr_vsnprintf (s, %d, \"%s\", ...) return value\n", |