X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fplugins%2Fpassprompt.c;h=06d9ff2197c9f89a080f4186d2c57c792b67b916;hb=b2c21894e165d7a0b4f1600fd8a8fd1b21305752;hp=ab9f390c2d1c968c8054b60e1e5da7cc81eb5e00;hpb=e87fe1bbd37a1486c5223f110e9ce3ef75971f93;p=ppp.git diff --git a/pppd/plugins/passprompt.c b/pppd/plugins/passprompt.c index ab9f390..06d9ff2 100644 --- a/pppd/plugins/passprompt.c +++ b/pppd/plugins/passprompt.c @@ -8,6 +8,11 @@ * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include @@ -30,7 +35,7 @@ static int promptpass(char *user, char *passwd) { int p[2]; pid_t kid; - int readgood, wstat; + int readgood, wstat, ret; ssize_t red; if (promptprog_refused || promptprog[0] == 0 || access(promptprog, X_OK) < 0) @@ -55,8 +60,14 @@ static int promptpass(char *user, char *passwd) sys_close(); closelog(); close(p[0]); - seteuid(getuid()); - setegid(getgid()); + ret = seteuid(getuid()); + if (ret != 0) { + warn("Couldn't set effective user id"); + } + ret = setegid(getgid()); + if (ret != 0) { + warn("Couldn't set effective user id"); + } argv[0] = promptprog; argv[1] = user; argv[2] = remote_name; @@ -113,7 +124,7 @@ void plugin_init(void) { add_options(options); pap_passwd_hook = promptpass; -#ifdef USE_EAPTLS +#ifdef PPP_WITH_EAPTLS eaptls_passwd_hook = promptpass; #endif }