Unverified Commit 20af95a9 authored by Binbin's avatar Binbin Committed by GitHub
Browse files

Add range check for server port in redis-cli/benchmark (#9854)

Validating inputs ahead of time, to give the end user a slightly more useful error.
parent 8a4e3bcd
...@@ -1446,6 +1446,10 @@ int parseOptions(int argc, char **argv) { ...@@ -1446,6 +1446,10 @@ int parseOptions(int argc, char **argv) {
} else if (!strcmp(argv[i],"-p")) { } else if (!strcmp(argv[i],"-p")) {
if (lastarg) goto invalid; if (lastarg) goto invalid;
config.conn_info.hostport = atoi(argv[++i]); config.conn_info.hostport = atoi(argv[++i]);
if (config.conn_info.hostport < 0 || config.conn_info.hostport > 65535) {
fprintf(stderr, "Invalid server port.\n");
exit(1);
}
} else if (!strcmp(argv[i],"-s")) { } else if (!strcmp(argv[i],"-s")) {
if (lastarg) goto invalid; if (lastarg) goto invalid;
config.hostsocket = strdup(argv[++i]); config.hostsocket = strdup(argv[++i]);
...@@ -1459,6 +1463,10 @@ int parseOptions(int argc, char **argv) { ...@@ -1459,6 +1463,10 @@ int parseOptions(int argc, char **argv) {
config.conn_info.user = sdsnew(argv[++i]); config.conn_info.user = sdsnew(argv[++i]);
} else if (!strcmp(argv[i],"-u") && !lastarg) { } else if (!strcmp(argv[i],"-u") && !lastarg) {
parseRedisUri(argv[++i],"redis-benchmark",&config.conn_info,&config.tls); parseRedisUri(argv[++i],"redis-benchmark",&config.conn_info,&config.tls);
if (config.conn_info.hostport < 0 || config.conn_info.hostport > 65535) {
fprintf(stderr, "Invalid server port.\n");
exit(1);
}
config.input_dbnumstr = sdsfromlonglong(config.conn_info.input_dbnum); config.input_dbnumstr = sdsfromlonglong(config.conn_info.input_dbnum);
} else if (!strcmp(argv[i],"-3")) { } else if (!strcmp(argv[i],"-3")) {
config.resp3 = 1; config.resp3 = 1;
......
...@@ -1961,6 +1961,10 @@ static int parseOptions(int argc, char **argv) { ...@@ -1961,6 +1961,10 @@ static int parseOptions(int argc, char **argv) {
config.stdin_tag_name = argv[++i]; config.stdin_tag_name = argv[++i];
} else if (!strcmp(argv[i],"-p") && !lastarg) { } else if (!strcmp(argv[i],"-p") && !lastarg) {
config.conn_info.hostport = atoi(argv[++i]); config.conn_info.hostport = atoi(argv[++i]);
if (config.conn_info.hostport < 0 || config.conn_info.hostport > 65535) {
fprintf(stderr, "Invalid server port.\n");
exit(1);
}
} else if (!strcmp(argv[i],"-s") && !lastarg) { } else if (!strcmp(argv[i],"-s") && !lastarg) {
config.hostsocket = argv[++i]; config.hostsocket = argv[++i];
} else if (!strcmp(argv[i],"-r") && !lastarg) { } else if (!strcmp(argv[i],"-r") && !lastarg) {
...@@ -1982,6 +1986,10 @@ static int parseOptions(int argc, char **argv) { ...@@ -1982,6 +1986,10 @@ static int parseOptions(int argc, char **argv) {
config.conn_info.user = sdsnew(argv[++i]); config.conn_info.user = sdsnew(argv[++i]);
} else if (!strcmp(argv[i],"-u") && !lastarg) { } else if (!strcmp(argv[i],"-u") && !lastarg) {
parseRedisUri(argv[++i],"redis-cli",&config.conn_info,&config.tls); parseRedisUri(argv[++i],"redis-cli",&config.conn_info,&config.tls);
if (config.conn_info.hostport < 0 || config.conn_info.hostport > 65535) {
fprintf(stderr, "Invalid server port.\n");
exit(1);
}
} else if (!strcmp(argv[i],"--raw")) { } else if (!strcmp(argv[i],"--raw")) {
config.output = OUTPUT_RAW; config.output = OUTPUT_RAW;
} else if (!strcmp(argv[i],"--no-raw")) { } else if (!strcmp(argv[i],"--no-raw")) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment