Message ID | 20180712111221.20326-17-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | tests: Compile-time format string checking for libqtest.h | expand |
Markus Armbruster <armbru@redhat.com> wrote: > wait_command() passes its argument @command to qtest_qmp_send(). > Falls apart if @command contain '%'. Two ways to disarm this trap: > suppress interpretation of '%' by passing @command as argument to > format string "%s", or fix it by having wait_command() take the > variable arguments to go with @command. Do the latter. > > This is another step towards compile-time format string checking > without triggering -Wformat-nonliteral. > > Cc: Juan Quintela <quintela@redhat.com> > Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> > Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> much better.
diff --git a/tests/migration-test.c b/tests/migration-test.c index 267342fd3e..55f9d006ec 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -156,9 +156,15 @@ static void stop_cb(void *opaque, const char *name, QDict *data) /* * Events can get in the way of responses we are actually waiting for. */ -static QDict *wait_command(QTestState *who, const char *command) +GCC_FMT_ATTR(2, 3) +static QDict *wait_command(QTestState *who, const char *command, ...) { - qtest_qmp_send(who, command); + va_list ap; + + va_start(ap, command); + qtest_qmp_vsend(who, command, ap); + va_end(ap); + return qtest_qmp_receive_success(who, stop_cb, NULL); }
wait_command() passes its argument @command to qtest_qmp_send(). Falls apart if @command contain '%'. Two ways to disarm this trap: suppress interpretation of '%' by passing @command as argument to format string "%s", or fix it by having wait_command() take the variable arguments to go with @command. Do the latter. This is another step towards compile-time format string checking without triggering -Wformat-nonliteral. Cc: Juan Quintela <quintela@redhat.com> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> --- tests/migration-test.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)