chiark / gitweb /
ec.c: Reject strings with trailing junk in the curve-point constructor.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 24 Nov 2019 21:54:44 +0000 (21:54 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 25 Nov 2019 17:51:32 +0000 (17:51 +0000)
ec.c
t/t-ec.py

diff --git a/ec.c b/ec.c
index aadcad0e3f9ae6c92946f98b4aeffed2b30a2014..7a6ed9501ac9358704ce9dffff49fcee2790da17 100644 (file)
--- 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);
index 75dc2be5b518636eb3b0c01e1397101cd1868496..02ae4d1d590aeb21090626dd02bfda472fbd30fe 100644 (file)
--- 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):