From 44b540338a3e271866a3d636359bfe6b2edecbb6 Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 22:08:40 -0400 Subject: [PATCH 1/2] fsdev/9p-marshal: move G_GNUC_PRINTF to header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v9fs_string_sprintf() is annotated with G_GNUC_PRINTF(2, 3) in 9p-marshal.c, but the prototype in fsdev/9p-marshal.h is missing the attribute, so callers that include only the header do not get format checking. Move the annotation to the header and delete the duplicate in the source file. No behavior change. Signed-off-by: Sean Wei Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20250613.qemu.9p.01@sean.taipei> [CS: fix code style (max. 80 chars per line)] Signed-off-by: Christian Schoenebeck --- fsdev/9p-marshal.c | 3 +-- fsdev/9p-marshal.h | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fsdev/9p-marshal.c b/fsdev/9p-marshal.c index f9b0336cd5..3455580703 100644 --- a/fsdev/9p-marshal.c +++ b/fsdev/9p-marshal.c @@ -27,8 +27,7 @@ void v9fs_string_free(V9fsString *str) str->size = 0; } -void G_GNUC_PRINTF(2, 3) -v9fs_string_sprintf(V9fsString *str, const char *fmt, ...) +void v9fs_string_sprintf(V9fsString *str, const char *fmt, ...) { va_list ap; diff --git a/fsdev/9p-marshal.h b/fsdev/9p-marshal.h index f1abbe151c..8995e42067 100644 --- a/fsdev/9p-marshal.h +++ b/fsdev/9p-marshal.h @@ -76,7 +76,8 @@ static inline void v9fs_string_init(V9fsString *str) str->size = 0; } void v9fs_string_free(V9fsString *str); -void v9fs_string_sprintf(V9fsString *str, const char *fmt, ...); +void G_GNUC_PRINTF(2, 3) v9fs_string_sprintf(V9fsString *str, const char *fmt, + ...); void v9fs_string_copy(V9fsString *lhs, V9fsString *rhs); #endif From 44f51c1a3cf435daa82eb757740b59b1fd4fe71c Mon Sep 17 00:00:00 2001 From: Sean Wei Date: Fri, 13 Jun 2025 22:09:20 -0400 Subject: [PATCH 2/2] hw/9pfs: move G_GNUC_PRINTF to header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v9fs_path_sprintf() is annotated with G_GNUC_PRINTF(2, 3) in hw/9pfs/9p.c, but the prototype in hw/9pfs/9p.h is missing the attribute, so callers that include only the header do not get format checking. Move the annotation to the header and delete the duplicate in the source file. No behavior change. Signed-off-by: Sean Wei Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250613.qemu.9p.02@sean.taipei> [CS: fix code style (max. 80 chars per line)] Signed-off-by: Christian Schoenebeck --- hw/9pfs/9p.c | 3 +-- hw/9pfs/9p.h | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c index 8b001b9112..acfa7db4e1 100644 --- a/hw/9pfs/9p.c +++ b/hw/9pfs/9p.c @@ -201,8 +201,7 @@ void v9fs_path_free(V9fsPath *path) } -void G_GNUC_PRINTF(2, 3) -v9fs_path_sprintf(V9fsPath *path, const char *fmt, ...) +void v9fs_path_sprintf(V9fsPath *path, const char *fmt, ...) { va_list ap; diff --git a/hw/9pfs/9p.h b/hw/9pfs/9p.h index 259ad32ed1..65cc45e344 100644 --- a/hw/9pfs/9p.h +++ b/hw/9pfs/9p.h @@ -456,7 +456,8 @@ static inline uint8_t v9fs_request_cancelled(V9fsPDU *pdu) void coroutine_fn v9fs_reclaim_fd(V9fsPDU *pdu); void v9fs_path_init(V9fsPath *path); void v9fs_path_free(V9fsPath *path); -void v9fs_path_sprintf(V9fsPath *path, const char *fmt, ...); +void G_GNUC_PRINTF(2, 3) v9fs_path_sprintf(V9fsPath *path, const char *fmt, + ...); void v9fs_path_copy(V9fsPath *dst, const V9fsPath *src); size_t v9fs_readdir_response_size(V9fsString *name); int v9fs_name_to_path(V9fsState *s, V9fsPath *dirpath,