PATCH: readline/histexpand.c, resource leak

msnyder
2007-08-01T02:14:58Z

[-- Attachment #1: Type: text/plain, Size: 0 bytes --]

[-- Attachment #2: 130.txt --]
[-- Type: text/plain, Size: 983 bytes --]

2007-07-31 Michael Snyder <msnyder@access-company.com>

* 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]);