Commit 23c39cb5 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Hans Verkuil
Browse files

media: qcom: camss: avoid format string warning



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: default avatarArnd Bergmann <arnd@arndb.de>
Reviewed-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarBryan O'Donoghue <bod@kernel.org>
Signed-off-by: default avatarHans Verkuil <hverkuil+cisco@kernel.org>
parent d31fac47
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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);
}