screen-devel
[Top][All Lists]
Advanced

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

Re: [screen-devel] Memory Leak in FreeAltScreen


From: Bill Pursell
Subject: Re: [screen-devel] Memory Leak in FreeAltScreen
Date: Mon, 27 Mar 2006 17:03:33 +0100
User-agent: Mozilla Thunderbird 1.0.7-1.1.fc3 (X11/20050929)

Juergen Weigert wrote:
On Mar 27, 06 05:41:04 +0100, Bill Pursell wrote:

Daniel De Graaf wrote:

In FreeAltScreen, the w_alt_mlines and w_alt_hlines entries are not
freed before setting them to zero. This causes a memory leak every
time a screen is switched, which can be demonstrated by the shell
script "for a in `seq 1 1000`; do echo test|less -E;done".

- Daniel De Graaf

--- resize.c.orig       2003-09-08 09:26:31.000000000 -0500
+++ resize.c    2006-03-26 13:16:26.000000000 -0600
@@ -1045,8 +1045,10 @@

 if (p->w_alt_mlines)
   for (i = 0; i < p->w_alt_height; i++)
     FreeMline(p->w_alt_mlines + i);
+  free(p->w_alt_mlines);
+  free(p->w_alt_hlines);
 p->w_alt_mlines = 0;
 p->w_alt_width = 0;
 p->w_alt_height = 0;
 p->w_alt_x = 0;



Freeing a memory address and then assigning to it is a bad idea. Simply freeing it is adequate.


why bad idea? I prefer to die in the NULL-Pointer access, than go amok in memory that I do no longer own.

        cheers,


My bad.  I mis-read the code as:

free(p->w_alt_mlines);
*p->w_alt_mlines = 0;

Which is definitely a bad idea :)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]