diff options
author | Binbin <binloveplay1314@qq.com> | 2022-07-13 11:32:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-12 20:32:14 -0700 |
commit | 20af95a99f333d242e13ffae86e89d6c1167d36f (patch) | |
tree | 934044a2e43db033d51a074ad93d959ba5759529 /src | |
parent | 8a4e3bcd8d26a50c6d5f4417102f71f8e2e2d70d (diff) | |
download | redis-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.c | 8 | ||||
-rw-r--r-- | src/redis-cli.c | 8 |
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")) { |