summaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorDenys Vlasenko2009-05-27 18:01:42 +0200
committerDenys Vlasenko2009-05-27 18:01:42 +0200
commit20cc390b9bb33cd0ab05c8bbfcd24babad7ec204 (patch)
tree876974f2abe0ae0213e5707fb551af70b73665cd /libbb
parentbae3abf2c7185f0a9145ed2c97abb2d2e7bc2b40 (diff)
downloadbusybox-20cc390b9bb33cd0ab05c8bbfcd24babad7ec204.zip
busybox-20cc390b9bb33cd0ab05c8bbfcd24babad7ec204.tar.gz
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 <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r--libbb/pw_encrypt_des.c4
-rw-r--r--libbb/read.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/libbb/pw_encrypt_des.c b/libbb/pw_encrypt_des.c
index 52548d6..c8e02dd 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 37503e8..4654f73 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)