svn commit: trunk/busybox/shell

vodz at busybox.net vodz at busybox.net
Tue Jan 31 09:27:49 UTC 2006


Author: vodz
Date: 2006-01-31 01:27:48 -0800 (Tue, 31 Jan 2006)
New Revision: 13747

Log:
quick analize signed->unsigned: protect overflow of map[char], getchar->EOF. Use ATTRIBUTE_UNUSE.

Modified:
   trunk/busybox/shell/hush.c


Changeset:
Modified: trunk/busybox/shell/hush.c
===================================================================
--- trunk/busybox/shell/hush.c	2006-01-31 08:17:13 UTC (rev 13746)
+++ trunk/busybox/shell/hush.c	2006-01-31 09:27:48 UTC (rev 13747)
@@ -233,20 +233,20 @@
 /* globals, connect us to the outside world
  * the first three support $?, $#, and $1 */
 static char **global_argv;
-static unsigned int global_argc;
-static unsigned int last_return_code;
+static int global_argc;
+static int last_return_code;
 extern char **environ; /* This is in <unistd.h>, but protected with __USE_GNU */
 
 /* "globals" within this file */
 static char *ifs;
-static char map[256];
+static unsigned char map[256];
 static int fake_mode;
 static int interactive;
 static struct close_me *close_me_head;
 static const char *cwd;
 static struct pipe *job_list;
 static unsigned int last_bg_pid;
-static unsigned int last_jobid;
+static int last_jobid;
 static unsigned int shell_terminal;
 static char *PS1;
 static char *PS2;
@@ -305,7 +305,7 @@
 	va_end(args);
 }
 #else
-static inline void debug_printf(const char *format, ...) { }
+static inline void debug_printf(const char *format ATTRIBUTE_UNUSED, ...) { }
 #endif
 #define final_printf debug_printf
 
@@ -472,7 +472,7 @@
 }
 
 /* built-in 'env' handler */
-static int builtin_env(struct child_prog *dummy)
+static int builtin_env(struct child_prog *dummy ATTRIBUTE_UNUSED)
 {
 	char **e = environ;
 	if (e == NULL) return EXIT_FAILURE;
@@ -604,7 +604,7 @@
 }
 
 /* built-in 'help' handler */
-static int builtin_help(struct child_prog *dummy)
+static int builtin_help(struct child_prog *dummy ATTRIBUTE_UNUSED)
 {
 	const struct built_in_command *x;
 
@@ -620,7 +620,7 @@
 }
 
 /* built-in 'jobs' handler */
-static int builtin_jobs(struct child_prog *child)
+static int builtin_jobs(struct child_prog *child ATTRIBUTE_UNUSED)
 {
 	struct pipe *job;
 	char *status_string;
@@ -638,7 +638,7 @@
 
 
 /* built-in 'pwd' handler */
-static int builtin_pwd(struct child_prog *dummy)
+static int builtin_pwd(struct child_prog *dummy ATTRIBUTE_UNUSED)
 {
 	puts(set_cwd());
 	return EXIT_SUCCESS;
@@ -2457,7 +2457,7 @@
 int parse_stream(o_string *dest, struct p_context *ctx,
 	struct in_str *input, int end_trigger)
 {
-	unsigned int ch, m;
+	int ch, m;
 	int redir_fd;
 	redir_type redir_style;
 	int next;
@@ -2616,8 +2616,8 @@
 
 static void mapset(const char *set, int code)
 {
-	const char *s;
-	for (s=set; *s; s++) map[(int)*s] = code;
+	const unsigned char *s;
+	for (s = (const unsigned char *)set; *s; s++) map[(int)*s] = code;
 }
 
 static void update_ifs_map(void)




More information about the busybox-cvs mailing list