From 941a348351e409096689d4126214026eb2745d69 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sun, 24 Nov 2019 21:54:44 +0000 Subject: [PATCH] ec.c: Reject strings with trailing junk in the curve-point constructor. --- ec.c | 1 + t/t-ec.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/ec.c b/ec.c index 444af3b..47445c1 100644 --- a/ec.c +++ b/ec.c @@ -525,6 +525,7 @@ static int ecptxl_1(ec_curve *c, ec *p, PyObject *x) qd.e = 0; if (!ec_ptparse(&qd, p)) VALERR(qd.e); + qd_skipspc(&qd); if (!qd_eofp(&qd)) VALERR("junk at eof"); goto fix; } else if (c && (xx = tomp(x)) != 0) { xx = F_IN(c->f, xx, xx); diff --git a/t/t-ec.py b/t/t-ec.py index 75dc2be..02ae4d1 100644 --- a/t/t-ec.py +++ b/t/t-ec.py @@ -59,6 +59,7 @@ class TestCurvelessPoints (U.TestCase): me.assertRaises(ValueError, C.ECPt, "12345") me.assertRaises(ValueError, C.ECPt, "12345,") me.assertRaises(ValueError, C.ECPt, "12345, xyzzy") + me.assertRaises(ValueError, C.ECPt, "12345, 67890!??") me.assertRaises(TypeError, C.ECPt, (1, 2, 3)) me.assertRaises(TypeError, C.ECPt, 1, 2, 3) me.assertRaises(TypeError, C.ECPt, 1234) @@ -144,6 +145,7 @@ class TestCurves (T.GenericTestMixin): me.assertEqual(E("%s, %s" % (P.ix, P.iy)), P) me.assertRaises(ValueError, E, "1234") me.assertRaises(ValueError, E, "1234,") + me.assertRaises(ValueError, E, "1234, 5678?") me.assertRaises(TypeError, E, 1, None) Q = E(P.ix); me.assertTrue(Q == P or Q == -P) for i in T.range(128): -- 2.11.0