[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-readline] Re: PATCH: readline/histexpand.c, resource leak
From: |
Jim Blandy |
Subject: |
[Bug-readline] Re: PATCH: readline/histexpand.c, resource leak |
Date: |
Tue, 14 Aug 2007 17:01:04 -0700 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
It seems to me that 'words' is a malloc'ed array of malloc'ed strings,
so 'free (words)' still leaks storage.
address@hidden writes:
> 2007-07-31 Michael Snyder <address@hidden>
>
> * histexpand.c (history_find_word): Resource leak.
>
> Index: histexpand.c
> ===================================================================
> RCS file: /cvs/src/src/readline/histexpand.c,v
> retrieving revision 1.6
> diff -p -r1.6 histexpand.c
> *** histexpand.c 5 May 2006 18:26:12 -0000 1.6
> --- histexpand.c 1 Aug 2007 02:08:51 -0000
> *************** history_find_word (line, ind)
> *** 1581,1588 ****
> int i, wind;
>
> words = history_tokenize_internal (line, ind, &wind);
> ! if (wind == -1 || words == 0)
> return ((char *)NULL);
> s = words[wind];
> for (i = 0; i < wind; i++)
> free (words[i]);
> --- 1581,1594 ----
> int i, wind;
>
> words = history_tokenize_internal (line, ind, &wind);
> ! if (words == NULL)
> return ((char *)NULL);
> + if (wind == -1)
> + {
> + free (words);
> + return ((char *)NULL);
> + }
> +
> s = words[wind];
> for (i = 0; i < wind; i++)
> free (words[i]);