Skip to content

Commit 5c4e9fd

Browse files
authored
Merge pull request #610 from SuhwanJang/hotfix-20211026
FIX: wrong parsing delay option in flush_prefix command
2 parents 308974b + 7bfe5bf commit 5c4e9fd

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

memcached.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8634,7 +8634,8 @@ static void process_flush_command(conn *c, token_t *tokens, const size_t ntokens
86348634
delay_flag = (ntokens == (c->noreply ? 5 : 4));
86358635
}
86368636
if (delay_flag) {
8637-
if (! safe_strtol(tokens[1].value, &exptime) || exptime < 0) {
8637+
int delay_idx = (flush_all ? 1 : 2);
8638+
if (! safe_strtol(tokens[delay_idx].value, &exptime) || exptime < 0) {
86388639
print_invalid_command(c, tokens, ntokens);
86398640
out_string(c, "CLIENT_ERROR bad command line format");
86408641
return;

t/flush-prefix.t

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/perl
22

33
use strict;
4-
use Test::More tests => 4001;
4+
use Test::More tests => 6001;
55
use FindBin qw($Bin);
66
use lib "$Bin/lib";
77
use MemcachedTest;
@@ -52,6 +52,13 @@ sub prefix_flush {
5252
}
5353
}
5454

55+
sub prefix_flush_delay {
56+
for ($size = 0; $size < $prefix_size; $size++) {
57+
$cmd = "flush_prefix pname$size 0"; $rst = "OK";
58+
mem_cmd_is($sock, $cmd, "", $rst);
59+
}
60+
}
61+
5562
sub item_get_miss {
5663
for ($size = 0; $size < $prefix_size; $size++) {
5764
$cmd = "get pname$size:foo";
@@ -82,6 +89,8 @@ item_get_hit();
8289
prefix_flush();
8390
count_prefix_empty();
8491
item_get_miss();
92+
prefix_insert();
93+
prefix_flush_delay();
8594

8695
# after test
8796
release_memcached($engine, $server);

0 commit comments

Comments
 (0)