summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2009-02-24 15:37:33 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2009-02-24 15:37:33 +0000
commite3c18352ad5b571277af02106ddba18ca4f0243f (patch)
tree8bfd81a2eb49140d4b69225f4d103bf640d0f441 /tests
parentc9296a1c40bbf5dd8db0a31f08a727b519c39d06 (diff)
downloadmpfr-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.c6
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",