packages: busybox/busybox-1.19.2-android.patch (NEW), busybox/busybox-1.19....

arekm arekm at pld-linux.org
Sat Oct 15 20:16:57 CEST 2011


Author: arekm                        Date: Sat Oct 15 18:16:57 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- patches from upstream

---- Files affected:
packages/busybox:
   busybox-1.19.2-android.patch (NONE -> 1.1)  (NEW), busybox-1.19.2-buildsys.patch (NONE -> 1.1)  (NEW), busybox-1.19.2-chpasswd.patch (NONE -> 1.1)  (NEW), busybox-1.19.2-crond.patch (NONE -> 1.1)  (NEW), busybox-1.19.2-inetd.patch (NONE -> 1.1)  (NEW), busybox-1.19.2-syslogd.patch (NONE -> 1.1)  (NEW), busybox-1.19.2-tail.patch (NONE -> 1.1)  (NEW), busybox-1.19.2-tftp.patch (NONE -> 1.1)  (NEW), busybox-1.14.2-ls.patch (1.1 -> NONE)  (REMOVED)

---- Diffs:

================================================================
Index: packages/busybox/busybox-1.19.2-android.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-android.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-android.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,11 @@
+--- busybox-1.19.2/include/platform.h
++++ busybox-1.19.2-android/include/platform.h
+@@ -433,7 +433,7 @@ typedef unsigned smalluint;
+ # undef HAVE_STPCPY
+ #endif
+ 
+-#if defined(ANDROID)
++#if defined(ANDROID) || defined(__ANDROID__)
+ # undef HAVE_DPRINTF
+ # undef HAVE_GETLINE
+ # undef HAVE_STPCPY

================================================================
Index: packages/busybox/busybox-1.19.2-buildsys.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-buildsys.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-buildsys.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,19 @@
+--- busybox-1.19.2/applets/applet_tables.c
++++ busybox-1.19.2-buildsys/applets/applet_tables.c
+@@ -80,8 +80,15 @@ int main(int argc, char **argv)
+ 
+ 	printf("#define NUM_APPLETS %u\n", NUM_APPLETS);
+ 	if (NUM_APPLETS == 1) {
++		char *dash_to_underscore, *p;
+ 		printf("#define SINGLE_APPLET_STR \"%s\"\n", applets[0].name);
+-		printf("#define SINGLE_APPLET_MAIN %s_main\n", applets[0].name);
++		/* Example: "ether-wake" -> "ether_wake" */
++		p = dash_to_underscore = strdup(applets[0].name);
++		p--;
++		while (*++p)
++			if (*p == '-')
++				*p = '_';
++		printf("#define SINGLE_APPLET_MAIN %s_main\n", dash_to_underscore);
+ 	}
+ 	printf("\n");
+ 

================================================================
Index: packages/busybox/busybox-1.19.2-chpasswd.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-chpasswd.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-chpasswd.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,55 @@
+--- busybox-1.19.2/loginutils/chpasswd.c
++++ busybox-1.19.2-chpasswd/loginutils/chpasswd.c
+@@ -33,9 +33,8 @@ static const char chpasswd_longopts[] AL
+ int chpasswd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int chpasswd_main(int argc UNUSED_PARAM, char **argv)
+ {
+-	char *name, *pass;
+-	char salt[sizeof("$N$XXXXXXXX")];
+-	int opt, rc;
++	char *name;
++	int opt;
+ 
+ 	if (getuid() != 0)
+ 		bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
+@@ -45,6 +44,10 @@ int chpasswd_main(int argc UNUSED_PARAM,
+ 	opt = getopt32(argv, "em");
+ 
+ 	while ((name = xmalloc_fgetline(stdin)) != NULL) {
++		char *free_me;
++		char *pass;
++		int rc;
++
+ 		pass = strchr(name, ':');
+ 		if (!pass)
+ 			bb_error_msg_and_die("missing new password");
+@@ -52,7 +55,10 @@ int chpasswd_main(int argc UNUSED_PARAM,
+ 
+ 		xuname2uid(name); /* dies if there is no such user */
+ 
++		free_me = NULL;
+ 		if (!(opt & OPT_ENC)) {
++			char salt[sizeof("$N$XXXXXXXX")];
++
+ 			crypt_make_salt(salt, 1);
+ 			if (opt & OPT_MD5) {
+ 				salt[0] = '$';
+@@ -60,7 +66,7 @@ int chpasswd_main(int argc UNUSED_PARAM,
+ 				salt[2] = '$';
+ 				crypt_make_salt(salt + 3, 4);
+ 			}
+-			pass = pw_encrypt(pass, salt, 0);
++			free_me = pass = pw_encrypt(pass, salt, 0);
+ 		}
+ 
+ 		/* This is rather complex: if user is not found in /etc/shadow,
+@@ -81,8 +87,7 @@ int chpasswd_main(int argc UNUSED_PARAM,
+ 			bb_info_msg("Password for '%s' changed", name);
+ 		logmode = LOGMODE_STDIO;
+ 		free(name);
+-		if (!(opt & OPT_ENC))
+-			free(pass);
++		free(free_me);
+ 	}
+ 	return EXIT_SUCCESS;
+ }

================================================================
Index: packages/busybox/busybox-1.19.2-crond.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-crond.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-crond.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,12 @@
+--- busybox-1.19.2/miscutils/crond.c
++++ busybox-1.19.2-crond/miscutils/crond.c
+@@ -861,7 +861,8 @@ int crond_main(int argc UNUSED_PARAM, ch
+ 
+ 	/* "-b after -f is ignored", and so on for every pair a-b */
+ 	opt_complementary = "f-b:b-f:S-L:L-S" IF_FEATURE_CROND_D(":d-l")
+-			":l+:d+"; /* -l and -d have numeric param */
++			/* -l and -d have numeric param */
++			":l+" IF_FEATURE_CROND_D(":d+");
+ 	opts = getopt32(argv, "l:L:fbSc:" IF_FEATURE_CROND_D("d:"),
+ 			&G.log_level, &G.log_filename, &G.crontab_dir_name
+ 			IF_FEATURE_CROND_D(,&G.log_level));

================================================================
Index: packages/busybox/busybox-1.19.2-inetd.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-inetd.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-inetd.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,47 @@
+--- busybox-1.19.2/networking/inetd.c
++++ busybox-1.19.2-inetd/networking/inetd.c
+@@ -1278,6 +1278,7 @@ int inetd_main(int argc UNUSED_PARAM, ch
+ 							sep->se_count = 0;
+ 							rearm_alarm(); /* will revive it in RETRYTIME sec */
+ 							restore_sigmask(&omask);
++							maybe_close(new_udp_fd);
+ 							maybe_close(accepted_fd);
+ 							continue; /* -> check next fd in fd set */
+ 						}
+@@ -1298,17 +1299,18 @@ int inetd_main(int argc UNUSED_PARAM, ch
+ 					bb_perror_msg("vfork"+1);
+ 					sleep(1);
+ 					restore_sigmask(&omask);
++					maybe_close(new_udp_fd);
+ 					maybe_close(accepted_fd);
+ 					continue; /* -> check next fd in fd set */
+ 				}
+ 				if (pid == 0)
+ 					pid--; /* -1: "we did fork and we are child" */
+ 			}
+-			/* if pid == 0 here, we never forked */
++			/* if pid == 0 here, we didn't fork */
+ 
+ 			if (pid > 0) { /* parent */
+ 				if (sep->se_wait) {
+-					/* tcp wait: we passed listening socket to child,
++					/* wait: we passed socket to child,
+ 					 * will wait for child to terminate */
+ 					sep->se_wait = pid;
+ 					remove_fd_from_set(sep->se_fd);
+@@ -1345,9 +1347,13 @@ int inetd_main(int argc UNUSED_PARAM, ch
+ 			setsid();
+ 			/* "nowait" udp */
+ 			if (new_udp_fd >= 0) {
+-				len_and_sockaddr *lsa = xzalloc_lsa(sep->se_family);
++				len_and_sockaddr *lsa;
++				int r;
++
++				close(new_udp_fd);
++				lsa = xzalloc_lsa(sep->se_family);
+ 				/* peek at the packet and remember peer addr */
+-				int r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT,
++				r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT,
+ 					&lsa->u.sa, &lsa->len);
+ 				if (r < 0)
+ 					goto do_exit1;

================================================================
Index: packages/busybox/busybox-1.19.2-syslogd.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-syslogd.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-syslogd.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,20 @@
+--- busybox-1.19.2/sysklogd/syslogd.c
++++ busybox-1.19.2-syslogd/sysklogd/syslogd.c
+@@ -278,7 +278,7 @@ static void parse_syslogdcfg(const char 
+ 	parser_t *parser;
+ 
+ 	parser = config_open2(file ? file : "/etc/syslog.conf",
+-				file ? xfopen_for_read : fopen_or_warn_stdin);
++				file ? xfopen_for_read : fopen_for_read);
+ 	if (!parser)
+ 		/* didn't find default /etc/syslog.conf */
+ 		/* proceed as if we built busybox without config support */
+@@ -678,7 +678,7 @@ static void timestamp_and_log(int pri, c
+ 	if (LOG_PRI(pri) < G.logLevel) {
+ #if ENABLE_FEATURE_IPC_SYSLOG
+ 		if ((option_mask32 & OPT_circularlog) && G.shbuf) {
+-			log_to_shmem(msg);
++			log_to_shmem(G.printbuf);
+ 			return;
+ 		}
+ #endif

================================================================
Index: packages/busybox/busybox-1.19.2-tail.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-tail.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-tail.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,43 @@
+--- busybox-1.19.2/coreutils/tail.c
++++ busybox-1.19.2-tail/coreutils/tail.c
+@@ -203,7 +203,7 @@ int tail_main(int argc, char **argv)
+ 		int fd = fds[i];
+ 
+ 		if (ENABLE_FEATURE_FANCY_TAIL && fd < 0)
+-			continue; /* may happen with -E */
++			continue; /* may happen with -F */
+ 
+ 		if (nfiles > header_threshhold) {
+ 			tail_xprint_header(fmt, argv[i]);
+@@ -252,14 +252,14 @@ int tail_main(int argc, char **argv)
+ 		 * Used only by +N code ("start from Nth", 1-based): */
+ 		seen = 1;
+ 		newlines_seen = 0;
+-		while ((nread = tail_read(fd, buf, tailbufsize-taillen)) > 0) {
++		while ((nread = tail_read(fd, buf, tailbufsize - taillen)) > 0) {
+ 			if (G.from_top) {
+ 				int nwrite = nread;
+ 				if (seen < count) {
+ 					/* We need to skip a few more bytes/lines */
+ 					if (COUNT_BYTES) {
+ 						nwrite -= (count - seen);
+-						seen = count;
++						seen += nread;
+ 					} else {
+ 						char *s = buf;
+ 						do {
+--- busybox-1.19.2/testsuite/tail.tests
++++ busybox-1.19.2-tail/testsuite/tail.tests
+@@ -14,4 +14,12 @@ testing "tail: +N with N > file length" 
+ 	"0\n" \
+ 	"" "qw"
+ 
++testing "tail: -c +N with largish N" \
++	"
++	dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8200 | wc -c;
++	dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8208 | wc -c;
++	" \
++	"8185\n8177\n" \
++	"" ""
++
+ exit $FAILCOUNT

================================================================
Index: packages/busybox/busybox-1.19.2-tftp.patch
diff -u /dev/null packages/busybox/busybox-1.19.2-tftp.patch:1.1
--- /dev/null	Sat Oct 15 20:16:57 2011
+++ packages/busybox/busybox-1.19.2-tftp.patch	Sat Oct 15 20:16:52 2011
@@ -0,0 +1,12 @@
+--- busybox-1.19.2/networking/tftp.c
++++ busybox-1.19.2-tftp/networking/tftp.c
+@@ -813,7 +813,8 @@ int tftpd_main(int argc UNUSED_PARAM, ch
+ 		goto err;
+ 	}
+ 	mode = local_file + strlen(local_file) + 1;
+-	if (mode >= block_buf + result || strcmp(mode, "octet") != 0) {
++	/* RFC 1350 says mode string is case independent */
++	if (mode >= block_buf + result || strcasecmp(mode, "octet") != 0) {
+ 		goto err;
+ 	}
+ # if ENABLE_FEATURE_TFTP_BLOCKSIZE
================================================================


More information about the pld-cvs-commit mailing list