aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano.tronto@gmail.com>2021-12-10 18:18:21 +0100
committerSebastiano Tronto <sebastiano.tronto@gmail.com>2021-12-10 18:18:21 +0100
commita238f897eee4be2fb561f4bbe33ed6aaa61b54ba (patch)
tree4d2c0a038825c93e900565ae440b8e97013d62be /src
parent6c28dec4a111ad73f8ac17c89305a951371f765d (diff)
downloadnissy-a238f897eee4be2fb561f4bbe33ed6aaa61b54ba.tar.gz
nissy-a238f897eee4be2fb561f4bbe33ed6aaa61b54ba.zip
Fixed segfault when passing malformed command arguments to solve
Diffstat (limited to 'src')
-rw-r--r--src/commands.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/commands.c b/src/commands.c
index 287ee67..b90a7f5 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -130,7 +130,7 @@ solve_parse_args(int c, char **v)
130 a->opts->print_number = true; 130 a->opts->print_number = true;
131 131
132 for (i = 0; i < c; i++) { 132 for (i = 0; i < c; i++) {
133 if (!strcmp(v[i], "-m")) { 133 if (!strcmp(v[i], "-m") && i+1 < c) {
134 val = strtol(v[++i], NULL, 10); 134 val = strtol(v[++i], NULL, 10);
135 if (val < 0 || val > 100) { 135 if (val < 0 || val > 100) {
136 fprintf(stderr, 136 fprintf(stderr,
@@ -139,7 +139,7 @@ solve_parse_args(int c, char **v)
139 return a; 139 return a;
140 } 140 }
141 a->opts->min_moves = val; 141 a->opts->min_moves = val;
142 } else if (!strcmp(v[i], "-M")) { 142 } else if (!strcmp(v[i], "-M") && i+1 < c) {
143 val = strtol(v[++i], NULL, 10); 143 val = strtol(v[++i], NULL, 10);
144 if (val < 0 || val > 100) { 144 if (val < 0 || val > 100) {
145 fprintf(stderr, 145 fprintf(stderr,
@@ -148,7 +148,7 @@ solve_parse_args(int c, char **v)
148 return a; 148 return a;
149 } 149 }
150 a->opts->max_moves = val; 150 a->opts->max_moves = val;
151 } else if (!strcmp(v[i], "-t")) { 151 } else if (!strcmp(v[i], "-t") && i+1 < c) {
152 val = strtol(v[++i], NULL, 10); 152 val = strtol(v[++i], NULL, 10);
153 if (val < 1 || val > 64) { 153 if (val < 1 || val > 64) {
154 fprintf(stderr, 154 fprintf(stderr,
@@ -157,7 +157,7 @@ solve_parse_args(int c, char **v)
157 return a; 157 return a;
158 } 158 }
159 a->opts->nthreads = val; 159 a->opts->nthreads = val;
160 } else if (!strcmp(v[i], "-s")) { 160 } else if (!strcmp(v[i], "-s") && i+1 < c) {
161 val = strtol(v[++i], NULL, 10); 161 val = strtol(v[++i], NULL, 10);
162 if (val < 1 || val > 1000000) { 162 if (val < 1 || val > 1000000) {
163 fprintf(stderr, 163 fprintf(stderr,

Generated with cgit - Back to sebastiano.tronto.net