From: Nikita Popov Date: Thu, 12 Nov 2020 10:37:54 +0000 (+0100) Subject: Fix memory leak with bcsqrt on number 0n_scale); - bc_init_num(&guess); bc_init_num(&guess1); bc_init_num(&diff); point5 = bc_new_num (1,1); @@ -87,6 +86,7 @@ bc_sqrt (bc_num *num, int scale) else { /* The number is greater than 1. Guess should start at 10^(exp/2). */ + bc_init_num(&guess); bc_int2num (&guess,10); bc_int2num (&guess1,(*num)->n_len); diff --git a/ext/bcmath/tests/bcsqrt.phpt b/ext/bcmath/tests/bcsqrt.phpt index 9f4a8ec6a5..b2a8d8adbc 100644 --- a/ext/bcmath/tests/bcsqrt.phpt +++ b/ext/bcmath/tests/bcsqrt.phpt @@ -9,8 +9,10 @@ bcmath.scale=0 echo bcsqrt("9"),"\n"; echo bcsqrt("9.444", 2),"\n"; echo bcsqrt("1928372132132819737213", 5),"\n"; +echo bcsqrt("0.5", 5), "\n"; ?> --EXPECT-- 3 3.07 43913234134.28826 +0.70710