svn commit: trunk/busybox/util-linux

landley at busybox.net landley at busybox.net
Mon Mar 20 02:20:23 UTC 2006


Author: landley
Date: 2006-03-19 18:20:18 -0800 (Sun, 19 Mar 2006)
New Revision: 14578

Log:
Patch from tito, acked by Bernhard Fischer.


Modified:
   trunk/busybox/util-linux/Config.in
   trunk/busybox/util-linux/setarch.c


Changeset:
Modified: trunk/busybox/util-linux/Config.in
===================================================================
--- trunk/busybox/util-linux/Config.in	2006-03-20 01:43:29 UTC (rev 14577)
+++ trunk/busybox/util-linux/Config.in	2006-03-20 02:20:18 UTC (rev 14578)
@@ -354,9 +354,19 @@
 	help
 	  This allows you to parse /proc/profile for basic profiling.
 
+config CONFIG_LINUX32
+	default n
+	depends on CONFIG_SETARCH
+
+config CONFIG_LINUX64
+	default n
+	depends on CONFIG_SETARCH
+
 config CONFIG_SETARCH
 	bool "setarch"
 	default n
+	select CONFIG_LINUX32
+	select CONFIG_LINUX64
 	help
 	  The linux32 utility is used to create a 32bit environment for the
 	  specified program (usually a shell).  It only makes sense to have

Modified: trunk/busybox/util-linux/setarch.c
===================================================================
--- trunk/busybox/util-linux/setarch.c	2006-03-20 01:43:29 UTC (rev 14577)
+++ trunk/busybox/util-linux/setarch.c	2006-03-20 02:20:18 UTC (rev 14578)
@@ -16,7 +16,7 @@
 
 #include "busybox.h"
 
-int setarch_main(int argc, char **argv)
+int setarch_main(int ATTRIBUTE_UNUSED argc, char **argv)
 {
 	int pers = -1;
 
@@ -26,9 +26,9 @@
 	 * argv[0]         -> "personality"
 	 */
 retry:
-	if (!strcmp(argv[0], "linux64"))
+	if (argv[0][5] == '6') /* linux64 */
 		pers = PER_LINUX;
-	else if (!strcmp(argv[0], "linux32"))
+	else if (argv[0][5] == '3') /* linux32 */
 		pers = PER_LINUX32;
 	else if (pers == -1 && argv[1] != NULL) {
 		pers = PER_LINUX32;
@@ -42,12 +42,11 @@
 		bb_show_usage();
 
 	/* Try to set personality */
-	if (personality(pers) < 0)
-		goto failure;
+	if (personality(pers) >= 0) {
 
-	/* Try to execute the program */
-	execvp(argv[0], argv);
+		/* Try to execute the program */
+		execvp(argv[0], argv);
+	}
 
-failure:
 	bb_perror_msg_and_die("%s", argv[0]);
 }




More information about the busybox-cvs mailing list