[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#318879: udpkg: Fix minor memory leak



Petter Reinholdtsen wrote:
> I believe there is a minor memory leak in udpkg.  This patch fixes it.
> It will need a review and some testing before it is commited.
> 
> Index: status.c
> ===================================================================
> --- status.c	(revisjon 29314)
> +++ status.c	(arbeidskopi)
> @@ -106,6 +111,8 @@
>  		strcat(multiple_lines, " ");
>  		strcat(multiple_lines, buf);
>  	}
> +	if (NULL != *ml)
> +		free(*ml);
>          *ml = multiple_lines;
>  	ungetc(ch, f);
>  	return EXIT_SUCCESS;

Hmm, if you look at the callers of read_block(), all of them pass a
pointer to strdup("") in which is silly if we'll always free it. So we
could instead just:

Index: status.c
===================================================================
--- status.c	(revision 29522)
+++ status.c	(working copy)
@@ -143,7 +143,6 @@
 		else if (strstr(buf, "Description: ") == buf)
 		{
 			p->description = strdup(buf+13);
-			p->long_description = strdup("");
 			read_block(f, &p->long_description);
 		}
 #ifdef DOL18N
@@ -158,7 +157,6 @@
 			buf[14] = '\0';
 			l->language = strdup(buf+12);
 			l->description = strdup(buf+16);
-			l->long_description = strdup("");
 			read_block(f, &l->long_description);
                         
 		}
@@ -198,7 +196,6 @@
 		}
 		else if (strstr(buf, "Conffiles: ") == buf)
 		{
-                        p->conffiles = strdup("");
 			read_block(f, &p->conffiles);
 		}
 

-- 
see shy jo

Attachment: signature.asc
Description: Digital signature


Reply to: