summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hiredis.c4
-rw-r--r--test.c6
2 files changed, 3 insertions, 7 deletions
diff --git a/hiredis.c b/hiredis.c
index 83218cd..dfee705 100644
--- a/hiredis.c
+++ b/hiredis.c
@@ -826,10 +826,8 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
}
fmt_invalid:
- /* Consume and discard vararg */
- va_arg(ap,void);
va_end(_cpy);
- break;
+ goto err;
fmt_valid:
_l = (_p+1)-c;
diff --git a/test.c b/test.c
index d3a3dbd..0dae70a 100644
--- a/test.c
+++ b/test.c
@@ -162,11 +162,9 @@ static void test_format_commands(void) {
len == 4+4+(8+2)+4+(3+2));
free(cmd);
- test("Format command with wrong printf format and extra interpolation: ");
+ test("Format command with invalid printf format: ");
len = redisFormatCommand(&cmd,"key:%08p %b",1234,"foo",3);
- test_cond(strncmp(cmd,"*2\r\n$6\r\nkey:8p\r\n$3\r\nfoo\r\n",len) == 0 &&
- len == 4+4+(6+2)+4+(3+2));
- free(cmd);
+ test_cond(len == -1);
const char *argv[3];
argv[0] = "SET";