From b67c17c38e660bbf6f68e23f27af5a974a3b08ac Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Fri, 18 Oct 2019 22:45:01 +0100 Subject: [PATCH] math/ec-exp.h: Fix segfault when base point is at infinity. --- math/ec-exp.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/math/ec-exp.h b/math/ec-exp.h index 6cad7537..b393d7ec 100644 --- a/math/ec-exp.h +++ b/math/ec-exp.h @@ -37,9 +37,13 @@ #define EXP_TYPE ec #define EXP_COPY(d, p) do { \ - (d).x = MP_COPY((p).x); \ - (d).y = MP_COPY((p).y); \ - (d).z = (p).z ? MP_COPY((p).z) : MP_NEW; \ + if (EC_ATINF(&(p))) \ + (d).x = (d).y = (d).z = MP_NEW; \ + else { \ + (d).x = MP_COPY((p).x); \ + (d).y = MP_COPY((p).y); \ + (d).z = (p).z ? MP_COPY((p).z) : MP_NEW; \ + } \ } while (0) #define EXP_DROP(x) EC_DESTROY(&(x)) -- 2.11.0