From: Michal Privoznik Date: Tue, 14 Dec 2021 14:26:47 +0000 (+0100) Subject: vsh-table: Ensure NULL terminated arguments to vshTable*() X-Git-Tag: v8.0.0-rc1~114 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ce184f33c0e474f0a4bb730f90c0ef00d654904;p=thirdparty%2Flibvirt.git vsh-table: Ensure NULL terminated arguments to vshTable*() There are two functions that take variable arguments: vshTableNew() and vshTableRowAppend(). Both expect the list of arguments to be NULL terminated. Annotate them with G_GNUC_NULL_TERMINATED to enable compile time check for this. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- diff --git a/tests/vshtabletest.c b/tests/vshtabletest.c index 2b997753ff..83d7f9b5ab 100644 --- a/tests/vshtabletest.c +++ b/tests/vshtabletest.c @@ -33,7 +33,7 @@ static int testVshTableNew(const void *opaque G_GNUC_UNUSED) { - g_autoptr(vshTable) table = vshTableNew(NULL); + g_autoptr(vshTable) table = vshTableNew(NULL, NULL); if (table) { fprintf(stderr, "expected failure when passing null to vshTableNew\n"); @@ -85,7 +85,7 @@ testVshTableRowAppend(const void *opaque G_GNUC_UNUSED) if (!table) return -1; - if (vshTableRowAppend(table, NULL) >= 0) { + if (vshTableRowAppend(table, NULL, NULL) >= 0) { fprintf(stderr, "Appending NULL shouldn't work\n"); return -1; } diff --git a/tools/vsh-table.h b/tools/vsh-table.h index df647e3ba9..18d5139aa6 100644 --- a/tools/vsh-table.h +++ b/tools/vsh-table.h @@ -29,10 +29,12 @@ vshTableFree(vshTable *table); G_DEFINE_AUTOPTR_CLEANUP_FUNC(vshTable, vshTableFree); vshTable * -vshTableNew(const char *format, ...); +vshTableNew(const char *format, ...) + G_GNUC_NULL_TERMINATED; int -vshTableRowAppend(vshTable *table, const char *arg, ...); +vshTableRowAppend(vshTable *table, const char *arg, ...) + G_GNUC_NULL_TERMINATED; void vshTablePrintToStdout(vshTable *table, vshControl *ctl);