diff options
author | Benoit Giannangeli <giann008@gmail.com> | 2017-06-16 12:19:18 +0200 |
---|---|---|
committer | Benoit Giannangeli <giann008@gmail.com> | 2017-06-16 12:19:18 +0200 |
commit | 0bdf4d229431dfa241e6fd4d63d144d944f99cfe (patch) | |
tree | 30bdb058c27e0bf72da646e4ab97c9e1c7b19bbc | |
parent | 06c1e428b32765bd77f8282acf4fed84cccc5922 (diff) | |
download | fengari-0bdf4d229431dfa241e6fd4d63d144d944f99cfe.tar.gz fengari-0bdf4d229431dfa241e6fd4d63d144d944f99cfe.tar.bz2 fengari-0bdf4d229431dfa241e6fd4d63d144d944f99cfe.zip |
str_unpack: pos is size_t in C so -1 should raise initial position error
-rw-r--r-- | src/lstrlib.js | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lstrlib.js b/src/lstrlib.js index a4a5289..7c3fac4 100644 --- a/src/lstrlib.js +++ b/src/lstrlib.js @@ -764,7 +764,7 @@ const str_unpack = function(L) { let ld = data.length; let pos = posrelat(lauxlib.luaL_optinteger(L, 3, 1), ld) - 1; let n = 0; /* number of results */ - lauxlib.luaL_argcheck(L, pos <= ld, 3, lua.to_luastring("initial position out of string", true)); + lauxlib.luaL_argcheck(L, pos <= ld && pos >= 0, 3, lua.to_luastring("initial position out of string", true)); while (fmt.off < fmt.s.length) { let details = getdetails(h, pos, fmt); let opt = details.opt; |