diff options
Diffstat (limited to 'shell/ash.c')
-rw-r--r-- | shell/ash.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/shell/ash.c b/shell/ash.c index 200e2d4a3..e14907073 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -1790,7 +1790,7 @@ extern struct globals_var *const ash_ptr_to_globals_var; | |||
1790 | #define vartab (G_var.vartab ) | 1790 | #define vartab (G_var.vartab ) |
1791 | #define varinit (G_var.varinit ) | 1791 | #define varinit (G_var.varinit ) |
1792 | #define INIT_G_var() do { \ | 1792 | #define INIT_G_var() do { \ |
1793 | int i; \ | 1793 | unsigned i; \ |
1794 | (*(struct globals_var**)&ash_ptr_to_globals_var) = xzalloc(sizeof(G_var)); \ | 1794 | (*(struct globals_var**)&ash_ptr_to_globals_var) = xzalloc(sizeof(G_var)); \ |
1795 | barrier(); \ | 1795 | barrier(); \ |
1796 | for (i = 0; i < ARRAY_SIZE(varinit_data); i++) { \ | 1796 | for (i = 0; i < ARRAY_SIZE(varinit_data); i++) { \ |
@@ -6223,7 +6223,7 @@ varvalue(char *name, int varflags, int flags, struct strlist *var_str_list) | |||
6223 | if (!eq) /* stop at first non-assignment */ | 6223 | if (!eq) /* stop at first non-assignment */ |
6224 | break; | 6224 | break; |
6225 | eq++; | 6225 | eq++; |
6226 | if (name_len == (eq - str) | 6226 | if (name_len == (unsigned)(eq - str) |
6227 | && strncmp(str, name, name_len) == 0) { | 6227 | && strncmp(str, name, name_len) == 0) { |
6228 | p = eq; | 6228 | p = eq; |
6229 | /* goto value; - WRONG! */ | 6229 | /* goto value; - WRONG! */ |
@@ -9500,12 +9500,13 @@ plus_minus_o(char *name, int val) | |||
9500 | ash_msg("illegal option %co %s", val ? '-' : '+', name); | 9500 | ash_msg("illegal option %co %s", val ? '-' : '+', name); |
9501 | return 1; | 9501 | return 1; |
9502 | } | 9502 | } |
9503 | for (i = 0; i < NOPTS; i++) | 9503 | for (i = 0; i < NOPTS; i++) { |
9504 | if (val) { | 9504 | if (val) { |
9505 | out1fmt("%-16s%s\n", optnames(i), optlist[i] ? "on" : "off"); | 9505 | out1fmt("%-16s%s\n", optnames(i), optlist[i] ? "on" : "off"); |
9506 | } else { | 9506 | } else { |
9507 | out1fmt("set %co %s\n", optlist[i] ? '-' : '+', optnames(i)); | 9507 | out1fmt("set %co %s\n", optlist[i] ? '-' : '+', optnames(i)); |
9508 | } | 9508 | } |
9509 | } | ||
9509 | return 0; | 9510 | return 0; |
9510 | } | 9511 | } |
9511 | static void | 9512 | static void |
@@ -9699,7 +9700,7 @@ getopts(char *optstr, char *optvar, char **optfirst, int *param_optind, int *opt | |||
9699 | return 1; | 9700 | return 1; |
9700 | optnext = optfirst + *param_optind - 1; | 9701 | optnext = optfirst + *param_optind - 1; |
9701 | 9702 | ||
9702 | if (*param_optind <= 1 || *optoff < 0 || strlen(optnext[-1]) < *optoff) | 9703 | if (*param_optind <= 1 || *optoff < 0 || (int)strlen(optnext[-1]) < *optoff) |
9703 | p = NULL; | 9704 | p = NULL; |
9704 | else | 9705 | else |
9705 | p = optnext[-1] + *optoff; | 9706 | p = optnext[-1] + *optoff; |
@@ -11121,7 +11122,7 @@ xxreadtoken(void) | |||
11121 | return readtoken1(c, BASESYNTAX, (char *) NULL, 0); | 11122 | return readtoken1(c, BASESYNTAX, (char *) NULL, 0); |
11122 | } | 11123 | } |
11123 | 11124 | ||
11124 | if (p - xxreadtoken_chars >= xxreadtoken_singles) { | 11125 | if ((size_t)(p - xxreadtoken_chars) >= xxreadtoken_singles) { |
11125 | if (pgetc() == *p) { /* double occurrence? */ | 11126 | if (pgetc() == *p) { /* double occurrence? */ |
11126 | p += xxreadtoken_doubles + 1; | 11127 | p += xxreadtoken_doubles + 1; |
11127 | } else { | 11128 | } else { |
@@ -11817,7 +11818,8 @@ trapcmd(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) | |||
11817 | static int | 11818 | static int |
11818 | helpcmd(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) | 11819 | helpcmd(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) |
11819 | { | 11820 | { |
11820 | int col, i; | 11821 | unsigned col; |
11822 | unsigned i; | ||
11821 | 11823 | ||
11822 | out1fmt("\nBuilt-in commands:\n-------------------\n"); | 11824 | out1fmt("\nBuilt-in commands:\n-------------------\n"); |
11823 | for (col = 0, i = 0; i < ARRAY_SIZE(builtintab); i++) { | 11825 | for (col = 0, i = 0; i < ARRAY_SIZE(builtintab); i++) { |
@@ -12479,6 +12481,7 @@ ulimitcmd(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) | |||
12479 | 12481 | ||
12480 | while ((c = *p++) >= '0' && c <= '9') { | 12482 | while ((c = *p++) >= '0' && c <= '9') { |
12481 | val = (val * 10) + (long)(c - '0'); | 12483 | val = (val * 10) + (long)(c - '0'); |
12484 | // val is actually 'unsigned long int' and can't get < 0 | ||
12482 | if (val < (rlim_t) 0) | 12485 | if (val < (rlim_t) 0) |
12483 | break; | 12486 | break; |
12484 | } | 12487 | } |