summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorTitanSnow <[email protected]>2017-05-23 07:57:13 +0800
committerTitanSnow <[email protected]>2017-05-23 07:57:13 +0800
commitc78a2867af7dca124aecbd56ecf6e0490b2a78c9 (patch)
tree0798b130b1f7e69558bd1c6b1eee388fb2d0c740 /core/src
parentce5c4be20bb79418ec63b705952e3ef383b130eb (diff)
do not set if no param
Diffstat (limited to 'core/src')
-rw-r--r--core/src/xmake/os/gid.c11
-rw-r--r--core/src/xmake/os/uid.c11
2 files changed, 14 insertions, 8 deletions
diff --git a/core/src/xmake/os/gid.c b/core/src/xmake/os/gid.c
index e3506514d..7d949ebc6 100644
--- a/core/src/xmake/os/gid.c
+++ b/core/src/xmake/os/gid.c
@@ -123,10 +123,13 @@ tb_int_t xm_os_gid(lua_State* lua)
// store return value
lua_newtable(lua);
- // set rgid & egid
- lua_pushstring(lua, "errno");
- lua_pushinteger(lua, setregid(rgidset, egidset) != 0 ? errno : 0);
- lua_settable(lua, -3);
+ if (rgidset != -1 || egidset != -1)
+ {
+ // set rgid & egid
+ lua_pushstring(lua, "errno");
+ lua_pushinteger(lua, setregid(rgidset, egidset) != 0 ? errno : 0);
+ lua_settable(lua, -3);
+ }
// get gid & egid
gid_t gid = getgid(), egid = getegid();
diff --git a/core/src/xmake/os/uid.c b/core/src/xmake/os/uid.c
index 2c173b868..4bcc9d122 100644
--- a/core/src/xmake/os/uid.c
+++ b/core/src/xmake/os/uid.c
@@ -123,10 +123,13 @@ tb_int_t xm_os_uid(lua_State* lua)
// store return value
lua_newtable(lua);
- // set ruid & euid
- lua_pushstring(lua, "errno");
- lua_pushinteger(lua, setreuid(ruidset, euidset) != 0 ? errno : 0);
- lua_settable(lua, -3);
+ if (ruidset != -1 || euidset != -1)
+ {
+ // set ruid & euid
+ lua_pushstring(lua, "errno");
+ lua_pushinteger(lua, setreuid(ruidset, euidset) != 0 ? errno : 0);
+ lua_settable(lua, -3);
+ }
// get uid & euid
uid_t uid = getuid(), euid = geteuid();