From ffdca3522e757f0203b7bdbe5bccb0ae826bfd81 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 7 Apr 2008 15:43:00 -0300 Subject: [PATCH] 'table.sort' detects invalid order function before calling it for nil elements --- ltablib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ltablib.c b/ltablib.c index e98188c4..ab83c0c8 100644 --- a/ltablib.c +++ b/ltablib.c @@ -1,5 +1,5 @@ /* -** $Id: ltablib.c,v 1.42 2007/11/26 16:57:33 roberto Exp roberto $ +** $Id: ltablib.c,v 1.43 2008/02/14 16:03:27 roberto Exp roberto $ ** Library for Table Manipulation ** See Copyright Notice in lua.h */ @@ -215,12 +215,12 @@ static void auxsort (lua_State *L, int l, int u) { for (;;) { /* invariant: a[l..i] <= P <= a[j..u] */ /* repeat ++i until a[i] >= P */ while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) { - if (i>u) luaL_error(L, "invalid order function for sorting"); + if (i>=u) luaL_error(L, "invalid order function for sorting"); lua_pop(L, 1); /* remove a[i] */ } /* repeat --j until a[j] <= P */ while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) { - if (j