From 20cc390b9bb33cd0ab05c8bbfcd24babad7ec204 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 27 May 2009 18:01:42 +0200 Subject: post-1.14.0 fixes hush significantly updated. fixes for acpid, awk, depmod, dhcp, gzip, mdev, modprobe, sysctl. libbb fixes. Signed-off-by: Denys Vlasenko --- libbb/pw_encrypt_des.c | 4 +++- libbb/read.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'libbb') 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; diff --git a/libbb/read.c b/libbb/read.c index 37503e84d..4654f737e 100644 --- a/libbb/read.c +++ b/libbb/read.c @@ -229,7 +229,7 @@ void* FAST_FUNC xmalloc_read(int fd, size_t *maxsz_p) if (size > 64*1024) size = 64*1024; } - xrealloc(buf, total + 1); + buf = xrealloc(buf, total + 1); buf[total] = '\0'; if (maxsz_p) @@ -273,7 +273,7 @@ void* FAST_FUNC xmalloc_open_read_close(const char *filename, size_t *maxsz_p) free(buf); return NULL; } - xrealloc(buf, size + 1); + buf = xrealloc(buf, size + 1); buf[size] = '\0'; if (maxsz_p) -- cgit v1.2.3-55-g6feb