X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=libs%2Fnixio%2Fsrc%2Fprocess.c;h=5ae9b829ea57b4fb9729261f34bb7c83e48f2fea;hp=45c06a644e77ad0cbc6a9f4b0dd8bb2d61c16f6d;hb=431d4e8eff513622eaa1b6e3f0803913c0abb975;hpb=94784db12b33d53c6da1b2a9195d40319766361c diff --git a/libs/nixio/src/process.c b/libs/nixio/src/process.c index 45c06a644..5ae9b829e 100644 --- a/libs/nixio/src/process.c +++ b/libs/nixio/src/process.c @@ -65,14 +65,14 @@ int nixio__exec(lua_State *L, int m) { return luaL_error(L, "stack overflow"); } - if (!lua_type(L, -2) != LUA_TSTRING || !lua_isstring(L, -1)) { + if (lua_type(L, -2) != LUA_TSTRING || !lua_isstring(L, -1)) { return luaL_argerror(L, 3, "invalid environment"); } lua_pushfstring(L, "%s=%s", lua_tostring(L, -2), lua_tostring(L, -1)); - lua_insert(L, 4); + lua_insert(L, 5); lua_pop(L, 1); argn++; } @@ -80,8 +80,8 @@ int nixio__exec(lua_State *L, int m) { char **env = lua_newuserdata(L, sizeof(char*) * (argn + 1)); env[argn] = NULL; - for (i = 1; i < argn; i++) { - env[i-1] = (char *)lua_tostring(L, -i); + for (i = 1; i <= argn; i++) { + env[i-1] = (char *)lua_tostring(L, -(i+1)); } execve(path, args, env);