On Fri Mar 20 16:18:24 2026 +0100, Arnd Bergmann wrote:
> clang-22 warns about csiphy_match_clock_name() taking a variable format
> string that is not checked against the 'int index' argument:
> 
> drivers/media/platform/qcom/camss/camss-csiphy.c:566:44: error: diagnostic 
> behavior may be improved by
>       adding the 'format(printf, 2, 3)' attribute to the declaration of 
> 'csiphy_match_clock_name'
>       [-Werror,-Wmissing-format-attribute]
>   561 | static bool csiphy_match_clock_name(const char *clock_name, const 
> char *format,
>       | __attribute__((format(printf, 2, 3)))
>   562 |                                     int index)
>   563 | {
>   564 |         char name[16]; /* csiphyXXX_timer\0 */
>   565 |
>   566 |         snprintf(name, sizeof(name), format, index);
>       |                                                   ^
> drivers/media/platform/qcom/camss/camss-csiphy.c:561:13: note: 
> 'csiphy_match_clock_name' declared here
>   561 | static bool csiphy_match_clock_name(const char *clock_name, const 
> char *format,
>       |             ^
> 
> Change the function to use a snprintf() style format string that allows this
> to be checked at the call site.
> 
> Signed-off-by: Arnd Bergmann <[email protected]>
> Reviewed-by: Bryan O'Donoghue <[email protected]>
> Signed-off-by: Bryan O'Donoghue <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/platform/qcom/camss/camss-csiphy.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c 
b/drivers/media/platform/qcom/camss/camss-csiphy.c
index 62623393f414..78a1b568dbae 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy.c
@@ -558,12 +558,16 @@ static int csiphy_init_formats(struct v4l2_subdev *sd,
        return csiphy_set_format(sd, fh ? fh->state : NULL, &format);
 }
 
-static bool csiphy_match_clock_name(const char *clock_name, const char *format,
-                                   int index)
+static bool __printf(2, 3)
+csiphy_match_clock_name(const char *clock_name, const char *format, ...)
 {
        char name[16]; /* csiphyXXX_timer\0 */
+       va_list args;
+
+       va_start(args, format);
+       vsnprintf(name, sizeof(name), format, args);
+       va_end(args);
 
-       snprintf(name, sizeof(name), format, index);
        return !strcmp(clock_name, name);
 }
 
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to