From 3d2819e491aee6a504a54e15f6eafa9707a1ce67 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 12 Nov 2020 11:37:54 +0100 Subject: [PATCH] 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 -- 2.50.1