diff options
-rw-r--r-- | shell/builtin_ulimit.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/shell/builtin_ulimit.c b/shell/builtin_ulimit.c index 7e8678341..9f9205eb6 100644 --- a/shell/builtin_ulimit.c +++ b/shell/builtin_ulimit.c | |||
@@ -175,15 +175,16 @@ int FAST_FUNC shell_builtin_ulimit(char **argv) | |||
175 | opt_char = 'f'; | 175 | opt_char = 'f'; |
176 | for (l = limits_tbl; l != &limits_tbl[ARRAY_SIZE(limits_tbl)]; l++) { | 176 | for (l = limits_tbl; l != &limits_tbl[ARRAY_SIZE(limits_tbl)]; l++) { |
177 | if (opt_char == l->option) { | 177 | if (opt_char == l->option) { |
178 | char *val_str = optarg ? optarg : (argv[optind] && argv[optind][0] != '-' ? argv[optind] : NULL); | 178 | char *val_str; |
179 | 179 | ||
180 | getrlimit(l->cmd, &limit); | 180 | getrlimit(l->cmd, &limit); |
181 | |||
182 | val_str = optarg; | ||
183 | if (!val_str && argv[optind] && argv[optind][0] != '-') | ||
184 | val_str = argv[optind++]; /* ++ skips NN in "-c NN" case */ | ||
181 | if (val_str) { | 185 | if (val_str) { |
182 | rlim_t val; | 186 | rlim_t val; |
183 | 187 | ||
184 | if (!optarg) /* -c NNN: make getopt skip NNN */ | ||
185 | optind++; | ||
186 | |||
187 | if (strcmp(val_str, "unlimited") == 0) | 188 | if (strcmp(val_str, "unlimited") == 0) |
188 | val = RLIM_INFINITY; | 189 | val = RLIM_INFINITY; |
189 | else { | 190 | else { |