summaryrefslogtreecommitdiff
path: root/usr.sbin/adduser
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/adduser')
-rw-r--r--usr.sbin/adduser/adduser.perl17
1 files changed, 11 insertions, 6 deletions
diff --git a/usr.sbin/adduser/adduser.perl b/usr.sbin/adduser/adduser.perl
index 3fac715984d..b6c80903138 100644
--- a/usr.sbin/adduser/adduser.perl
+++ b/usr.sbin/adduser/adduser.perl
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
-# $OpenBSD: adduser.perl,v 1.18 1999/07/03 23:56:18 hugh Exp $
+# $OpenBSD: adduser.perl,v 1.19 1999/09/06 16:48:41 alex Exp $
#
# Copyright (c) 1995-1996 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
# All rights reserved.
@@ -28,6 +28,8 @@
#
# $From: adduser.perl,v 1.22 1996/12/07 21:25:12 ache Exp $
+use IPC::Open2;
+
################
# main
#
@@ -936,10 +938,13 @@ sub encrypt {
$args = "-b $salt";
}
- $pass =~ s/(.)/\\$1/g;
-
- $crypt = `/usr/bin/encrypt $args -- $pass`;
- chop $crypt;
+ open2(\*ENCRD, \*ENCWR, "/usr/bin/encrypt $args");
+ print ENCWR "$pass\n";
+ close ENCWR;
+ $crypt = <ENCRD>;
+ close ENCRD;
+ chomp $crypt;
+ die "encrypt failed" if (wait == -1 || $? != 0);
return($crypt);
}
@@ -1447,7 +1452,7 @@ sub config_write {
print C <<EOF;
#
-# $OpenBSD: adduser.perl,v 1.18 1999/07/03 23:56:18 hugh Exp $
+# $OpenBSD: adduser.perl,v 1.19 1999/09/06 16:48:41 alex Exp $
# $config - automatic generated by adduser(8)
#
# Note: adduser read *and* write this file.