Hi all,

I found the source of the problem, in test.c (svn), line 322:

smallint val1, val2;

the type of these two variables must be arith_t because their values
returned by getn:

static arith_t getn(const char *s)

I attached a patch to correct this bug.

Malek
--- busybox/coreutils/test.c.orig	2007-05-24 21:49:21.000000000 +0200
+++ busybox/coreutils/test.c	2007-05-24 21:53:38.000000000 +0200
@@ -181,7 +181,7 @@ static void initialize_group_array(void)
 
 int bb_test(int argc, char **argv)
 {
-	int res;
+	arith_t res;
 
 	if (LONE_CHAR(argv[0], '[')) {
 		--argc;
@@ -319,7 +319,7 @@ static int binop(void)
 {
 	const char *opnd1, *opnd2;
 	struct t_op const *op;
-	smallint val1, val2;
+	arith_t val1, val2;
 
 	opnd1 = *t_wp;
 	(void) t_lex(*++t_wp);
@@ -473,11 +473,7 @@ static enum token t_lex(char *s)
 static arith_t getn(const char *s)
 {
 	char *p;
-#if ENABLE_FEATURE_TEST_64
-	long long r;
-#else
-	long r;
-#endif
+	arith_t r;
 
 	errno = 0;
 #if ENABLE_FEATURE_TEST_64
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to