summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsergiocarlos <carloschilazo@gmail.com>2015-12-12 15:59:17 -0600
committerdormando <dormando@rydia.net>2016-05-28 23:49:03 -0700
commit0fe9eac95c79c33d3ff89cae1e8fba9faaea95ef (patch)
tree0b42fd50e6994aafc73e77aec0da4ab0f13f6032
parent6105de18bcb8a820b93cb24c5966cc9278d8eea5 (diff)
downloadmemcached-0fe9eac95c79c33d3ff89cae1e8fba9faaea95ef.tar.gz
Added sanity check for maximum connections setting
-rw-r--r--memcached.c4
-rwxr-xr-xt/00-startup.t12
2 files changed, 15 insertions, 1 deletions
diff --git a/memcached.c b/memcached.c
index eb5ffd3..db82136 100644
--- a/memcached.c
+++ b/memcached.c
@@ -5244,6 +5244,10 @@ int main (int argc, char **argv) {
break;
case 'c':
settings.maxconns = atoi(optarg);
+ if (settings.maxconns <= 0) {
+ fprintf(stderr, "Maximum connections must be greater than 0\n");
+ return 1;
+ }
break;
case 'h':
usage();
diff --git a/t/00-startup.t b/t/00-startup.t
index 26967d0..77715c5 100755
--- a/t/00-startup.t
+++ b/t/00-startup.t
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use Test::More tests => 18;
+use Test::More tests => 20;
use FindBin qw($Bin);
use lib "$Bin/lib";
use MemcachedTest;
@@ -75,6 +75,16 @@ eval {
};
ok($@, "Died with illegal -B arg.");
+# Maximum connections must be greater than 0.
+eval {
+ my $server = new_memcached("-c 0");
+};
+ok($@, "Died with invalid maximum connections 0.");
+eval {
+ my $server = new_memcached("-c -1");
+};
+ok($@, "Died with invalid maximum connections -1.");
+
# Should not allow -t 0
eval {
my $server = new_memcached("-t 0");