From 913a58527901d93d9f0d05c2180e10f24e703033 Mon Sep 17 00:00:00 2001 From: hasufell Date: Sat, 28 Jun 2014 00:48:12 +0200 Subject: [PATCH] POLY: fix segfault for non-invertible polynomials --- src/ntru_poly.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ntru_poly.c b/src/ntru_poly.c index a5386ce..22f0759 100644 --- a/src/ntru_poly.c +++ b/src/ntru_poly.c @@ -329,7 +329,8 @@ poly_inverse_poly_q(fmpz_poly_t Fq, fmpz_poly_zero(Fq); while (1) { - while (fmpz_is_zero(fmpz_poly_get_coeff_ptr(f, 0))) { + while (fmpz_poly_get_coeff_ptr(f, 0) && + fmpz_is_zero(fmpz_poly_get_coeff_ptr(f, 0))) { for (uint32_t i = 1; i <= params->N; i++) { fmpz *f_coeff = fmpz_poly_get_coeff_ptr(f, i); fmpz *c_coeff = fmpz_poly_get_coeff_ptr(c, params->N - i); @@ -444,7 +445,8 @@ poly_inverse_poly_p(fmpz_poly_t Fp, fmpz_poly_zero(Fp); while (1) { - while (fmpz_is_zero(fmpz_poly_get_coeff_ptr(f, 0))) { + while (fmpz_poly_get_coeff_ptr(f, 0) && + fmpz_is_zero(fmpz_poly_get_coeff_ptr(f, 0))) { for (uint32_t i = 1; i <= params->N; i++) { fmpz *f_coeff = fmpz_poly_get_coeff_ptr(f, i); fmpz *c_coeff = fmpz_poly_get_coeff_ptr(c, params->N - i);