nasty hack hides password on commandline
This commit is contained in:
parent
1f9a0273db
commit
e889185aca
|
@ -71,13 +71,11 @@ close_dns(int fd)
|
|||
void
|
||||
do_chroot(char *newroot)
|
||||
{
|
||||
if (newroot) {
|
||||
if (chroot(newroot) != 0 || chdir("/") != 0)
|
||||
err(1, "%s", newroot);
|
||||
|
||||
seteuid(geteuid());
|
||||
setuid(getuid());
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
24
src/iodine.c
24
src/iodine.c
|
@ -681,6 +681,9 @@ main(int argc, char **argv)
|
|||
case 'P':
|
||||
strncpy(password, optarg, 32);
|
||||
password[32] = 0;
|
||||
|
||||
/* XXX: find better way of cleaning up ps(1) */
|
||||
memset(optarg, 0, strlen(optarg));
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
|
@ -689,7 +692,7 @@ main(int argc, char **argv)
|
|||
}
|
||||
|
||||
if (geteuid() != 0) {
|
||||
printf("Run as root and you'll be happy.\n");
|
||||
warnx("Run as root and you'll be happy.\n");
|
||||
usage();
|
||||
}
|
||||
|
||||
|
@ -713,14 +716,13 @@ main(int argc, char **argv)
|
|||
set_nameserver(nameserv_addr);
|
||||
|
||||
if (strlen(topdomain) > 128 || topdomain[0] == '.') {
|
||||
printf("Use a topdomain max 128 chars long. Do not start it with a dot.\n");
|
||||
warnx("Use a topdomain max 128 chars long. Do not start it with a dot.\n");
|
||||
usage();
|
||||
}
|
||||
|
||||
if(username) {
|
||||
pw = getpwnam(username);
|
||||
if (!pw) {
|
||||
printf("User %s does not exist!\n", username);
|
||||
if (username != NULL) {
|
||||
if ((pw = getpwnam(username)) == NULL) {
|
||||
warnx("User %s does not exist!\n", username);
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
@ -739,20 +741,20 @@ main(int argc, char **argv)
|
|||
if(handshake(dns_fd))
|
||||
goto cleanup2;
|
||||
|
||||
printf("Sending queries for %s to %s\n", topdomain, nameserv_addr);
|
||||
printf("Sending queries for %s to %s\n", argv[1], argv[0]);
|
||||
|
||||
if (newroot != NULL)
|
||||
do_chroot(newroot);
|
||||
|
||||
if (username) {
|
||||
if (username != NULL) {
|
||||
if (setgid(pw->pw_gid) < 0 || setuid(pw->pw_uid) < 0) {
|
||||
printf("Could not switch to user %s!\n", username);
|
||||
warnx("Could not switch to user %s!\n", username);
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
if (!foreground) {
|
||||
if (foreground == 0)
|
||||
do_detach();
|
||||
}
|
||||
|
||||
tunnel(tun_fd, dns_fd);
|
||||
|
||||
|
|
|
@ -573,6 +573,7 @@ main(int argc, char **argv)
|
|||
|
||||
printf("Listening to dns for domain %s\n", argv[1]);
|
||||
|
||||
if (newroot != NULL)
|
||||
do_chroot(newroot);
|
||||
|
||||
signal(SIGINT, sigint);
|
||||
|
|
Loading…
Reference in New Issue