From 448e644c7e3981261214ecddd21923534377a6f2 Mon Sep 17 00:00:00 2001 From: dkf Date: Thu, 20 Aug 2009 14:29:13 +0000 Subject: Backport of memory leak plug. --- ChangeLog | 17 ++++++++++------- generic/tclCmdIL.c | 5 ++++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index d45e52c..45e23f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,16 +1,19 @@ +2009-08-20 Donal K. Fellows + + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug memory leak. + 2009-08-18 Don Porter - * generic/tclPathObj.c: Added NULL check to prevent crashes during - * tests/fileName.test: [glob]. [Bug 2837800] + * generic/tclPathObj.c: [Bug 2837800]: Added NULL check to prevent + * tests/fileName.test: crashes during [glob]. 2009-08-06 Andreas Kupries * doc/refchan.n [Bug 2827000]: Extended the implementation of - * generic/tclIORChan.c: reflective channels (TIP 219, method - * tests/ioCmd.test: 'read'), enabling handlers to signal EAGAIN to - indicate 'no data, but not at EOF either', and other system - errors. Updated documentation, extended testsuite (New test cases - iocmd*-23.{9,10}). + * generic/tclIORChan.c: reflective channels (TIP 219, method 'read'), + * tests/ioCmd.test: enabling handlers to signal EAGAIN to indicate 'no + data, but not at EOF either', and other system errors. Updated + documentation, extended testsuite (New test cases iocmd*-23.{9,10}). 2009-08-02 Donal K. Fellows diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index e485347..fed7975 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -16,7 +16,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdIL.c,v 1.137.2.7 2009/07/16 20:50:54 dgp Exp $ + * RCS: @(#) $Id: tclCmdIL.c,v 1.137.2.8 2009/08/20 14:29:14 dkf Exp $ */ #include "tclInt.h" @@ -3501,6 +3501,9 @@ Tcl_LsortObjCmd( for (i = 1; i < objc-1; i++) { if (Tcl_GetIndexFromObj(interp, objv[i], switches, "option", 0, &index) != TCL_OK) { + if (sortInfo.indexc > 1) { + ckfree((char *) sortInfo.indexv); + } return TCL_ERROR; } switch ((enum Lsort_Switches) index) { -- cgit v0.12