Subject: Re: base64 routines [was: Re: CVS commit: src/usr.bin]
To: Elad Efrat <elad@netbsd.org>
From: Darrin B.Jewell <dbj@netbsd.org>
List: tech-userlevel
Date: 09/24/2006 12:43:57
--=-=-=
"Darrin B.Jewell" <dbj@netbsd.org> writes:
> 1. disable the base64 support in uudecode with a HOST_CPPFLAGS+= -DNO_BASE64
The following patch implments this option:
--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=uudecode.base64.diff
Content-Description: disable base64 in tools uudecode
Index: src/tools/uudecode/Makefile
===================================================================
RCS file: /cvsroot/src/tools/uudecode/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- src/tools/uudecode/Makefile 8 Dec 2002 20:20:06 -0000 1.2
+++ src/tools/uudecode/Makefile 24 Sep 2006 19:42:10 -0000
@@ -3,4 +3,6 @@
HOSTPROGNAME= ${_TOOL_PREFIX}uudecode
HOST_SRCDIR= usr.bin/uudecode
+HOST_CPPFLAGS= -DNO_BASE64
+
.include "${.CURDIR}/../Makefile.host"
Index: src/usr.bin/uudecode/uudecode.c
===================================================================
RCS file: /cvsroot/src/usr.bin/uudecode/uudecode.c,v
retrieving revision 1.21
diff -u -r1.21 uudecode.c
--- src/usr.bin/uudecode/uudecode.c 24 Sep 2006 15:32:48 -0000 1.21
+++ src/usr.bin/uudecode/uudecode.c 24 Sep 2006 19:42:10 -0000
@@ -51,19 +51,22 @@
*/
#include <sys/param.h>
#include <sys/stat.h>
-#include <netinet/in.h>
#include <ctype.h>
#include <err.h>
#include <errno.h>
#include <limits.h>
#include <locale.h>
-#include <resolv.h>
#include <pwd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#ifndef NO_BASE64
+#include <netinet/in.h>
+#include <resolv.h>
+#endif
+
static int decode(void);
static void usage(void);
static int checkend(const char *, const char *, const char *);
@@ -268,7 +271,12 @@
warnx("%s: short file.", filename);
return (1);
}
+#ifdef NO_BASE64
+ warnx("%s: base64 decoding is not supported\n", filename);
+ return (1);
+#else
n = b64_pton(inbuf, outbuf, sizeof(outbuf));
+#endif
if (n < 0)
break;
fwrite(outbuf, 1, n, stdout);
--=-=-=--