mirror of
https://github.com/skeeto/endlessh.git
synced 2025-12-10 06:55:36 +00:00
Tighten up integer argument parsing
This commit is contained in:
@@ -273,6 +273,7 @@ main(int argc, char **argv)
|
|||||||
char *end;
|
char *end;
|
||||||
switch (option) {
|
switch (option) {
|
||||||
case 'd':
|
case 'd':
|
||||||
|
errno = 0;
|
||||||
delay = strtol(optarg, &end, 10);
|
delay = strtol(optarg, &end, 10);
|
||||||
if (errno || *end || delay < 0) {
|
if (errno || *end || delay < 0) {
|
||||||
fprintf(stderr, "endlessh: Invalid delay: %s\n", optarg);
|
fprintf(stderr, "endlessh: Invalid delay: %s\n", optarg);
|
||||||
@@ -284,6 +285,7 @@ main(int argc, char **argv)
|
|||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
|
errno = 0;
|
||||||
tmp = strtol(optarg, &end, 10);
|
tmp = strtol(optarg, &end, 10);
|
||||||
if (errno || *end || tmp < 3 || tmp > 255) {
|
if (errno || *end || tmp < 3 || tmp > 255) {
|
||||||
fprintf(stderr, "endlessh: Invalid line length: %s\n",
|
fprintf(stderr, "endlessh: Invalid line length: %s\n",
|
||||||
@@ -293,8 +295,9 @@ main(int argc, char **argv)
|
|||||||
max_length = tmp;
|
max_length = tmp;
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
|
errno = 0;
|
||||||
tmp = strtol(optarg, &end, 10);
|
tmp = strtol(optarg, &end, 10);
|
||||||
if (errno || *end || tmp < 0 || tmp > INT_MAX) {
|
if (errno || *end || tmp < 1 || tmp > INT_MAX) {
|
||||||
fprintf(stderr, "endlessh: Invalid max clients: %s\n",
|
fprintf(stderr, "endlessh: Invalid max clients: %s\n",
|
||||||
optarg);
|
optarg);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
@@ -302,8 +305,9 @@ main(int argc, char **argv)
|
|||||||
max_clients = tmp;
|
max_clients = tmp;
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
|
errno = 0;
|
||||||
tmp = strtol(optarg, &end, 10);
|
tmp = strtol(optarg, &end, 10);
|
||||||
if (errno || *end || tmp < 0 || tmp > 65535) {
|
if (errno || *end || tmp < 1 || tmp > 65535) {
|
||||||
fprintf(stderr, "endlessh: Invalid port: %s\n", optarg);
|
fprintf(stderr, "endlessh: Invalid port: %s\n", optarg);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user