summaryrefslogtreecommitdiffhomepage
path: root/libbb/pw_encrypt_des.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-05-01 03:41:25 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-05-01 03:41:25 +0200
commit44d1989997a9546d587921cf792f68040fac882c (patch)
tree7e11e962507a47cbfd6097e66ee1bb00ca44a4e1 /libbb/pw_encrypt_des.c
parent05ae400830cba731ad8a423c54d23876bace59c4 (diff)
des encrypt: fix goof with NUL byte added at the end as '.'
Diffstat (limited to 'libbb/pw_encrypt_des.c')
-rw-r--r--libbb/pw_encrypt_des.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libbb/pw_encrypt_des.c b/libbb/pw_encrypt_des.c
index 52548d623..c8e02ddff 100644
--- a/libbb/pw_encrypt_des.c
+++ b/libbb/pw_encrypt_des.c
@@ -778,8 +778,10 @@ des_crypt(struct des_ctx *ctx, char output[DES_OUT_BUFSIZE],
to64_msb_first(output + 2, (r0 >> 8));
/* bits 7..0 of r0 and 31..16 of r1 */
to64_msb_first(output + 6, (r0 << 16) | (r1 >> 16));
- /* (bits 15..0 of r1 + 00) and NUL byte */
+ /* bits 15..0 of r1 and two zero bits (plus extra zero byte) */
to64_msb_first(output + 10, (r1 << 8));
+ /* extra zero byte is encoded as '.', fixing it */
+ output[13] = '\0';
#endif
return output;