Browse Source

Add helpful error message for setuid/setgid when user/group id does not exist

v0.7.4-release
Brian White 14 years ago
committed by Ryan Dahl
parent
commit
52b9ede6db
  1. 12
      src/node.cc

12
src/node.cc

@ -1420,7 +1420,11 @@ static Handle<Value> SetGid(const Arguments& args) {
if ((err = getgrnam_r(*grpnam, &grp, getbuf, ARRAY_SIZE(getbuf), &grpp)) || if ((err = getgrnam_r(*grpnam, &grp, getbuf, ARRAY_SIZE(getbuf), &grpp)) ||
grpp == NULL) { grpp == NULL) {
return ThrowException(ErrnoException(errno, "getgrnam_r")); if (errno == 0)
return ThrowException(Exception::Error(
String::New("setgid group id does not exist")));
else
return ThrowException(ErrnoException(errno, "getgrnam_r"));
} }
gid = grpp->gr_gid; gid = grpp->gr_gid;
@ -1455,7 +1459,11 @@ static Handle<Value> SetUid(const Arguments& args) {
if ((err = getpwnam_r(*pwnam, &pwd, getbuf, ARRAY_SIZE(getbuf), &pwdp)) || if ((err = getpwnam_r(*pwnam, &pwd, getbuf, ARRAY_SIZE(getbuf), &pwdp)) ||
pwdp == NULL) { pwdp == NULL) {
return ThrowException(ErrnoException(errno, "getpwnam_r")); if (errno == 0)
return ThrowException(Exception::Error(
String::New("setuid user id does not exist")));
else
return ThrowException(ErrnoException(errno, "getpwnam_r"));
} }
uid = pwdp->pw_uid; uid = pwdp->pw_uid;

Loading…
Cancel
Save