query() sample fetch function takes an optional argument string. During
configuration parsing, empty string must be ignored. It is especially
important when the sample is used with empty parenthesis. The argument is
optional and it is a list of options to configure the behavior of the sample
fetch. So it is logical to ignore empty strings.
This patch should fix the issue #2815. It must be backported to 3.1.
int val_query(struct arg *args, char **err_msg)
{
+ int val = 0;
+
if (args[0].type == ARGT_STOP)
return 1;
return 0;
}
- if (chunk_strcmp(&args[0].data.str, "with_qm") != 0) {
- memprintf(err_msg, "supported options are: 'with_qm'");
- return 0;
+ if (args[0].data.str.data != 0) {
+ if (chunk_strcmp(&args[0].data.str, "with_qm") != 0) {
+ memprintf(err_msg, "supported options are: 'with_qm'");
+ return 0;
+ }
+ val = 1;
}
chunk_destroy(&args[0].data.str);
args[0].type = ARGT_SINT;
- args[0].data.sint = 1;
+ args[0].data.sint = val;
return 1;
}