aboutsummaryrefslogtreecommitdiffstats
path: root/main/bc/bc-1.06.95-memory_leak-1.patch
blob: 65703f9481545cee2675acf44814ae937991f45e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Submitted By: Bruce Dubbs (bdubbs at linuxfromscratch dot org)
Date: 2014-04-18
Initial Package Version: 1.06.95
Origin: Gentoo
Description: Fixes memory leaks and an uninitialized variable
 
diff -Naur bc-1.06.95.orig/bc/bc.y bc-1.06.95/bc/bc.y
--- bc-1.06.95.orig/bc/bc.y	2006-09-04 21:39:31.000000000 -0500
+++ bc-1.06.95/bc/bc.y	2014-04-09 13:27:04.602661243 -0500
@@ -569,6 +569,7 @@
 				    generate (">");
 				  break;
 				}
+			        free($2);	
 			    }
 			| expression '+' expression
 			    {
diff -Naur bc-1.06.95.orig/bc/storage.c bc-1.06.95/bc/storage.c
--- bc-1.06.95.orig/bc/storage.c	2006-09-04 21:39:31.000000000 -0500
+++ bc-1.06.95/bc/storage.c	2014-04-09 13:28:11.770763410 -0500
@@ -99,6 +99,7 @@
     {
       f = &functions[indx];
       f->f_defined = FALSE;
+      f->f_void = FALSE;
       f->f_body = (char *) bc_malloc (BC_START_SIZE);
       f->f_body_size = BC_START_SIZE;
       f->f_code_size = 0;
diff -Naur bc-1.06.95.orig/bc/util.c bc-1.06.95/bc/util.c
--- bc-1.06.95.orig/bc/util.c	2006-09-04 21:39:31.000000000 -0500
+++ bc-1.06.95/bc/util.c	2014-04-09 13:27:39.841190064 -0500
@@ -602,8 +602,7 @@
     case FUNCTDEF:
       if (id->f_name != 0)
 	{
-	  if (namekind != FUNCT)
-	    free(name);
+	  free(name);
 	  /* Check to see if we are redefining a math lib function. */ 
 	  if (use_math && namekind == FUNCTDEF && id->f_name <= 6)
 	    id->f_name = next_func++;