Re: [RFA/PING] Fix a small memory leak in bpstat_stop_status

Jason Molenda
2003-03-10T22:42:09Z

My agreement doesn't help you at all :-), but this patch looks correct
to me--we will leak a copy of the "silent" command in
bpstat_stop_status() without this patch.

Jason

On Monday, March 10, 2003, at 11:03 AM, Joel Brobecker wrote:

> Hello,
>
> Can somebody have a look at this patch please (2nd ping)? Granted, it
> is
> not a very important patch, it "only" fixes a small memory leak, but
> I believe the change is very localized, so easy to review.
>
> Thanks!
>
> On Thu, Dec 12, 2002 at 11:40:58AM +0100, Joel Brobecker wrote:
>> This is a followup on a thread that I started, archived at:
>> http://sources.redhat.com/ml/gdb-patches/2002-12/msg00358.html
>>
>> Basically, I extracted the part that fixed a small memory leak, and
>> tested it separately, as the other part of the patch is likely to be
>> superseeded by another patch submitted by Klee Dienes.
>>
>> 2002-12-12 Joel Brobecker <brobecker@gnat.com>
>>
>> * breakpoint.c (bpstat_stop_status): Fix a small memory leak.
>>
>> No regressions on x86-linux.
>>
>> Ok to apply?
>> --
>> Joel
>
>> Index: breakpoint.c
>> ===================================================================
>> RCS file: /cvs/src/src/gdb/breakpoint.c,v
>> retrieving revision 1.100
>> diff -c -3 -p -r1.100 breakpoint.c
>> *** breakpoint.c 4 Dec 2002 04:53:13 -0000 1.100
>> --- breakpoint.c 12 Dec 2002 10:21:53 -0000
>> *************** bpstat_stop_status (CORE_ADDR *pc, int n
>> *** 2763,2771 ****
>> /* We will stop here */
>> if (b->disposition == disp_disable)
>> b->enable_state = bp_disabled;
>> - bs->commands = copy_command_lines (b->commands);
>> if (b->silent)
>> bs->print = 0;
>> if (bs->commands &&
>> (STREQ ("silent", bs->commands->line) ||
>> (xdb_commands && STREQ ("Q", bs->commands->line))))
>> --- 2767,2775 ----
>> /* We will stop here */
>> if (b->disposition == disp_disable)
>> b->enable_state = bp_disabled;
>> if (b->silent)
>> bs->print = 0;
>> + bs->commands = b->commands;
>> if (bs->commands &&
>> (STREQ ("silent", bs->commands->line) ||
>> (xdb_commands && STREQ ("Q", bs->commands->line))))
>> *************** bpstat_stop_status (CORE_ADDR *pc, int n
>> *** 2773,2778 ****
>> --- 2777,2783 ----
>> bs->commands = bs->commands->next;
>> bs->print = 0;
>> }
>> + bs->commands = copy_command_lines (bs->commands);
>> }
>> }
>> /* Print nothing for this entry if we dont stop or if we dont
>> print. */
>
>
> --
> Joel
>