diff options
Diffstat (limited to 'loginutils')
-rw-r--r-- | loginutils/cryptpw.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/loginutils/cryptpw.c b/loginutils/cryptpw.c index 1acbc6d..901f6fc 100644 --- a/loginutils/cryptpw.c +++ b/loginutils/cryptpw.c @@ -15,14 +15,14 @@ if you played with bbox's crypt implementation. while read line; do n=`./busybox cryptpw -a des -- "$line"` - o=`./busybox_old cryptpw -a des -- "$line"` + o=`./busybox_org cryptpw -a des -- "$line"` test "$n" != "$o" && { echo n="$n" echo o="$o" exit } n=`./busybox cryptpw -- "$line"` - o=`./busybox_old cryptpw -- "$line"` + o=`./busybox_org cryptpw -- "$line"` test "$n" != "$o" && { echo n="$n" echo o="$o" @@ -35,12 +35,12 @@ int cryptpw_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int cryptpw_main(int argc ATTRIBUTE_UNUSED, char **argv) { char salt[sizeof("$N$XXXXXXXX")]; + char *opt_a; - if (!getopt32(argv, "a:", NULL) || argv[optind - 1][0] != 'd') { - strcpy(salt, "$1$"); - /* Too ugly, and needs even more magic to handle endianness: */ - //((uint32_t*)&salt)[0] = '$' + '1'*0x100 + '$'*0x10000; - /* Hope one day gcc will do it itself (inlining strcpy) */ + if (!getopt32(argv, "a:", &opt_a) || opt_a[0] != 'd') { + salt[0] = '$'; + salt[1] = '1'; + salt[2] = '$'; crypt_make_salt(salt + 3, 4, 0); /* md5 */ #if TESTING strcpy(salt + 3, "ajg./bcf"); |