summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBinbin <binloveplay1314@qq.com>2022-07-13 11:32:14 +0800
committerGitHub <noreply@github.com>2022-07-12 20:32:14 -0700
commit20af95a99f333d242e13ffae86e89d6c1167d36f (patch)
tree934044a2e43db033d51a074ad93d959ba5759529 /src
parent8a4e3bcd8d26a50c6d5f4417102f71f8e2e2d70d (diff)
downloadredis-20af95a99f333d242e13ffae86e89d6c1167d36f.tar.gz
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.
Diffstat (limited to 'src')
-rw-r--r--src/redis-benchmark.c8
-rw-r--r--src/redis-cli.c8
2 files changed, 16 insertions, 0 deletions
diff --git a/src/redis-benchmark.c b/src/redis-benchmark.c
index 2e0362b07..d727c4b63 100644
--- a/src/redis-benchmark.c
+++ b/src/redis-benchmark.c
@@ -1446,6 +1446,10 @@ int parseOptions(int argc, char **argv) {
} else if (!strcmp(argv[i],"-p")) {
if (lastarg) goto invalid;
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")) {
if (lastarg) goto invalid;
config.hostsocket = strdup(argv[++i]);
@@ -1459,6 +1463,10 @@ int parseOptions(int argc, char **argv) {
config.conn_info.user = sdsnew(argv[++i]);
} else if (!strcmp(argv[i],"-u") && !lastarg) {
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);
} else if (!strcmp(argv[i],"-3")) {
config.resp3 = 1;
diff --git a/src/redis-cli.c b/src/redis-cli.c
index 0de78c67e..a1a258f46 100644
--- a/src/redis-cli.c
+++ b/src/redis-cli.c
@@ -1961,6 +1961,10 @@ static int parseOptions(int argc, char **argv) {
config.stdin_tag_name = argv[++i];
} else if (!strcmp(argv[i],"-p") && !lastarg) {
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) {
config.hostsocket = argv[++i];
} else if (!strcmp(argv[i],"-r") && !lastarg) {
@@ -1982,6 +1986,10 @@ static int parseOptions(int argc, char **argv) {
config.conn_info.user = sdsnew(argv[++i]);
} else if (!strcmp(argv[i],"-u") && !lastarg) {
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")) {
config.output = OUTPUT_RAW;
} else if (!strcmp(argv[i],"--no-raw")) {