From f2ec37902a2a6aa54ab616bfa7f6d296bddc9b68 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 26 Jan 2004 07:17:30 +0000 Subject: Pascal Brisset writes: uuencode fails to encode binary data because it right-shifts bytes as signed chars and keeps the duplicated sign bits. The original base64_encode() from wget/http.c is broken as well, but it is only used to encode ascii data. -- Pascal --- coreutils/uuencode.c | 2 +- networking/wget.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/coreutils/uuencode.c b/coreutils/uuencode.c index fd3326d80..42f629f48 100644 --- a/coreutils/uuencode.c +++ b/coreutils/uuencode.c @@ -59,7 +59,7 @@ static const char tbl_std[65] = { * buffer of at least 1+BASE64_LENGTH(length) bytes. * where BASE64_LENGTH(len) = (4 * ((LENGTH + 2) / 3)) */ -static void uuencode (const char *s, const char *store, const int length, const char *tbl) +static void uuencode (const unsigned char *s, const char *store, const int length, const char *tbl) { int i; unsigned char *p = (unsigned char *)store; diff --git a/networking/wget.c b/networking/wget.c index 3fd1df124..59f78ac3b 100644 --- a/networking/wget.c +++ b/networking/wget.c @@ -119,7 +119,7 @@ static char *safe_fgets(char *s, int size, FILE *stream) * oops... isn't something similar in uuencode.c? * It would be better to use already existing code */ -char *base64enc(char *p, char *buf, int len) { +char *base64enc(unsigned char *p, char *buf, int len) { char al[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" "0123456789+/"; @@ -837,7 +837,7 @@ progressmeter(int flag) * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: wget.c,v 1.66 2004/01/17 23:07:14 bug1 Exp $ + * $Id: wget.c,v 1.67 2004/01/26 07:17:30 andersen Exp $ */ -- cgit v1.2.3