From 7cf28a1e23e36cae089d6ed13eeecf2d0b618f97 Mon Sep 17 00:00:00 2001 From: sebres Date: Wed, 11 Mar 2020 15:48:07 +0000 Subject: close [234d6c811d]: fixed segfault on empty list variable by "lpop" without index --- generic/tclCmdIL.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index f74368a..94ff2cc 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -2587,6 +2587,14 @@ Tcl_LpopObjCmd( */ if (objc == 2) { + if (!listLen) { + /* empty list, throw the same error as with index "end" */ + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "index \"end\" out of range", -1)); + Tcl_SetErrorCode(interp, "TCL", "VALUE", "INDEX" + "OUTOFRANGE", NULL); + return TCL_ERROR; + } elemPtr = elemPtrs[listLen - 1]; Tcl_IncrRefCount(elemPtr); } else { -- cgit v0.12