[brasero/wip/lantw/fix-build-with-modern-compilers: 7/8] build: Fix non-literal format string error for clang
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [brasero/wip/lantw/fix-build-with-modern-compilers: 7/8] build: Fix non-literal format string error for clang
- Date: Fri, 17 Sep 2021 09:05:02 +0000 (UTC)
commit 51d2aa0416210e71fdb7c4fde5a34ef0d8ea49c1
Author: Ting-Wei Lan <lantw src gnome org>
Date: Thu Apr 2 16:07:22 2015 +0800
build: Fix non-literal format string error for clang
https://bugzilla.gnome.org/show_bug.cgi?id=747226
libbrasero-burn/brasero-burn.c | 14 +++-----
libbrasero-burn/brasero-session-helper.h | 4 +--
libbrasero-burn/burn-debug.c | 56 ++++++++++++--------------------
libbrasero-burn/burn-debug.h | 10 +++---
libbrasero-burn/burn-job.h | 16 +++------
libbrasero-burn/burn-plugin.c | 3 ++
libbrasero-burn/burn-process.c | 29 ++++++++---------
libbrasero-media/brasero-media-private.h | 2 +-
libbrasero-media/brasero-media.c | 9 ++---
libbrasero-utils/brasero-misc.c | 9 ++---
libbrasero-utils/brasero-misc.h | 2 +-
plugins/transcode/burn-normalize.c | 2 +-
plugins/transcode/burn-transcode.c | 2 +-
plugins/transcode/burn-vob.c | 2 +-
14 files changed, 64 insertions(+), 96 deletions(-)
---
diff --git a/libbrasero-burn/brasero-burn.c b/libbrasero-burn/brasero-burn.c
index 5e1577be..dc4d198a 100644
--- a/libbrasero-burn/brasero-burn.c
+++ b/libbrasero-burn/brasero-burn.c
@@ -112,16 +112,12 @@ struct _BraseroBurnPrivate {
#define BRASERO_BURN_DEBUG(burn, message, ...) \
{ \
- gchar *format; \
BRASERO_BURN_LOG (message, ##__VA_ARGS__); \
- format = g_strdup_printf ("%s (%s %s)", \
- message, \
- G_STRFUNC, \
- G_STRLOC); \
brasero_burn_log (burn, \
- format, \
- ##__VA_ARGS__); \
- g_free (format); \
+ message " (%s %s)", \
+ ##__VA_ARGS__, \
+ G_STRFUNC, \
+ G_STRLOC); \
}
typedef enum {
@@ -178,7 +174,7 @@ brasero_burn_new ()
return g_object_new (BRASERO_TYPE_BURN, NULL);
}
-static void
+G_GNUC_PRINTF (2, 3) static void
brasero_burn_log (BraseroBurn *burn,
const gchar *format,
...)
diff --git a/libbrasero-burn/brasero-session-helper.h b/libbrasero-burn/brasero-session-helper.h
index 15543c38..b83487a9 100644
--- a/libbrasero-burn/brasero-session-helper.h
+++ b/libbrasero-burn/brasero-session-helper.h
@@ -123,11 +123,11 @@ brasero_burn_session_stop (BraseroBurnSession *session);
void
brasero_burn_session_logv (BraseroBurnSession *session,
const gchar *format,
- va_list arg_list);
+ va_list arg_list) G_GNUC_PRINTF (2, 0);
void
brasero_burn_session_log (BraseroBurnSession *session,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (2, 3);
/**
* Allow to save a whole session settings/source and restore it later.
diff --git a/libbrasero-burn/burn-debug.c b/libbrasero-burn/burn-debug.c
index e84d2be4..f0a57239 100644
--- a/libbrasero-burn/burn-debug.c
+++ b/libbrasero-burn/burn-debug.c
@@ -98,20 +98,17 @@ brasero_burn_debug_message (const gchar *location,
...)
{
va_list arg_list;
- gchar *format_real;
if (!debug)
return;
- format_real = g_strdup_printf ("BraseroBurn: (at %s) %s\n",
- location,
- format);
+ printf ("BraseroBurn: (at %s) ", location);
va_start (arg_list, format);
- vprintf (format_real, arg_list);
+ vprintf (format, arg_list);
va_end (arg_list);
- g_free (format_real);
+ putchar ('\n');
}
void
@@ -119,17 +116,12 @@ brasero_burn_debug_messagev (const gchar *location,
const gchar *format,
va_list arg_list)
{
- gchar *format_real;
-
if (!debug)
return;
- format_real = g_strdup_printf ("BraseroBurn: (at %s) %s\n",
- location,
- format);
-
- vprintf (format_real, arg_list);
- g_free (format_real);
+ printf ("BraseroBurn: (at %s) ", location);
+ vprintf (format, arg_list);
+ putchar ('\n');
}
static void
@@ -173,7 +165,6 @@ brasero_burn_debug_flags_type_message (BraseroBurnFlag flags,
...)
{
gchar buffer [256] = {0};
- gchar *format_real;
va_list arg_list;
if (!debug)
@@ -181,16 +172,15 @@ brasero_burn_debug_flags_type_message (BraseroBurnFlag flags,
brasero_debug_burn_flags_to_string (buffer, flags);
- format_real = g_strdup_printf ("BraseroBurn: (at %s) %s %s\n",
- location,
- format,
- buffer);
+ printf ("BraseroBurn: (at %s) ", location);
va_start (arg_list, format);
- vprintf (format_real, arg_list);
+ vprintf (format, arg_list);
va_end (arg_list);
- g_free (format_real);
+ putchar (' ');
+ fputs (buffer, stdout);
+ putchar ('\n');
}
static void
@@ -276,7 +266,6 @@ brasero_burn_debug_track_type_struct_message (BraseroTrackType *type,
...)
{
gchar buffer [256];
- gchar *format_real;
va_list arg_list;
if (!debug)
@@ -319,16 +308,15 @@ brasero_burn_debug_track_type_struct_message (BraseroTrackType *type,
else
strcpy (buffer, "Undefined");
- format_real = g_strdup_printf ("BraseroBurn: (at %s) %s %s\n",
- location,
- format,
- buffer);
+ printf ("BraseroBurn: (at %s) ", location);
va_start (arg_list, format);
- vprintf (format_real, arg_list);
+ vprintf (format, arg_list);
va_end (arg_list);
- g_free (format_real);
+ putchar (' ');
+ fputs (buffer, stdout);
+ putchar ('\n');
}
void
@@ -340,7 +328,6 @@ brasero_burn_debug_track_type_message (BraseroTrackDataType type,
...)
{
gchar buffer [256];
- gchar *format_real;
va_list arg_list;
if (!debug)
@@ -386,15 +373,14 @@ brasero_burn_debug_track_type_message (BraseroTrackDataType type,
break;
}
- format_real = g_strdup_printf ("BraseroBurn: (at %s) %s %s\n",
- location,
- format,
- buffer);
+ printf ("BraseroBurn: (at %s) ", location);
va_start (arg_list, format);
- vprintf (format_real, arg_list);
+ vprintf (format, arg_list);
va_end (arg_list);
- g_free (format_real);
+ putchar (' ');
+ fputs (buffer, stdout);
+ putchar ('\n');
}
diff --git a/libbrasero-burn/burn-debug.h b/libbrasero-burn/burn-debug.h
index cae79b0d..66f94388 100644
--- a/libbrasero-burn/burn-debug.h
+++ b/libbrasero-burn/burn-debug.h
@@ -98,28 +98,28 @@ brasero_burn_debug_track_type_struct_message (BraseroTrackType *type,
BraseroPluginIOFlag flags,
const gchar *location,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (4, 5);
void
brasero_burn_debug_track_type_message (BraseroTrackDataType type,
guint subtype,
BraseroPluginIOFlag flags,
const gchar *location,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (5, 6);
void
brasero_burn_debug_flags_type_message (BraseroBurnFlag flags,
const gchar *location,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (3, 4);
void
brasero_burn_debug_message (const gchar *location,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (2, 3);
void
brasero_burn_debug_messagev (const gchar *location,
const gchar *format,
- va_list args);
+ va_list args) G_GNUC_PRINTF (2, 0);
G_END_DECLS
diff --git a/libbrasero-burn/burn-job.h b/libbrasero-burn/burn-job.h
index 59c91735..5e234b03 100644
--- a/libbrasero-burn/burn-job.h
+++ b/libbrasero-burn/burn-job.h
@@ -311,30 +311,22 @@ void
brasero_job_log_message (BraseroJob *job,
const gchar *location,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (3, 4);
#define BRASERO_JOB_LOG(job, message, ...) \
{ \
- gchar *format; \
- format = g_strdup_printf ("%s %s", \
- G_OBJECT_TYPE_NAME (job), \
- message); \
brasero_job_log_message (BRASERO_JOB (job), \
G_STRLOC, \
- format, \
+ "%s " message, \
+ G_OBJECT_TYPE_NAME (job), \
##__VA_ARGS__); \
- g_free (format); \
}
#define BRASERO_JOB_LOG_ARG(job, message, ...) \
{ \
- gchar *format; \
- format = g_strdup_printf ("\t%s", \
- (gchar*) message); \
brasero_job_log_message (BRASERO_JOB (job), \
G_STRLOC, \
- format, \
+ "\t" message, \
##__VA_ARGS__); \
- g_free (format); \
}
#define BRASERO_JOB_NOT_SUPPORTED(job) \
diff --git a/libbrasero-burn/burn-plugin.c b/libbrasero-burn/burn-plugin.c
index f97bc5fa..739b8ff7 100644
--- a/libbrasero-burn/burn-plugin.c
+++ b/libbrasero-burn/burn-plugin.c
@@ -277,8 +277,11 @@ brasero_plugin_test_app (BraseroPlugin *plugin,
for (i = 0; i < 3 && version [i] >= 0; i++);
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat-nonliteral"
if ((standard_output && sscanf (standard_output, version_format, &major, &minor, &sub) == i)
|| (standard_error && sscanf (standard_error, version_format, &major, &minor, &sub) == i)) {
+#pragma clang diagnostic pop
if (major < version [0]
|| (version [1] >= 0 && minor < version [1])
|| (version [2] >= 0 && sub < version [2]))
diff --git a/libbrasero-burn/burn-process.c b/libbrasero-burn/burn-process.c
index bd0b8d56..4d0b2da3 100644
--- a/libbrasero-burn/burn-process.c
+++ b/libbrasero-burn/burn-process.c
@@ -62,10 +62,6 @@ enum {
BRASERO_CHANNEL_STDERR
};
-static const gchar *debug_prefixes [] = { "stdout: %s",
- "stderr: %s",
- NULL };
-
typedef BraseroBurnResult (*BraseroProcessReadFunc) (BraseroProcess *process,
const gchar *line);
@@ -143,6 +139,7 @@ brasero_process_ask_argv (BraseroJob *job,
for (i = 0; priv->argv->pdata [i]; i++)
BRASERO_JOB_LOG_ARG (process,
+ "%s",
priv->argv->pdata [i]);
if (result != BRASERO_BURN_OK) {
@@ -327,6 +324,14 @@ brasero_process_watch_child (gpointer data)
return FALSE;
}
+#define PROCESS_READ_LOG(msg) \
+{ \
+ if (channel_type == BRASERO_CHANNEL_STDERR) \
+ BRASERO_JOB_LOG (process, "stderr: %s", msg) \
+ else \
+ BRASERO_JOB_LOG (process, "stdout: %s", msg) \
+}
+
static gboolean
brasero_process_read (BraseroProcess *process,
GIOChannel *channel,
@@ -377,9 +382,7 @@ brasero_process_read (BraseroProcess *process,
case '\r':
case '\xe2': /* Unicode paragraph separator */
case '\0':
- BRASERO_JOB_LOG (process,
- debug_prefixes [channel_type],
- buffer->str);
+ PROCESS_READ_LOG (buffer->str);
if (readfunc && buffer->str [0] != '\0')
result = readfunc (process, buffer->str);
@@ -412,9 +415,7 @@ brasero_process_read (BraseroProcess *process,
g_string_append (buffer, line);
g_free (line);
- BRASERO_JOB_LOG (process,
- debug_prefixes [channel_type],
- buffer->str);
+ PROCESS_READ_LOG (buffer->str);
if (readfunc && buffer->str [0] != '\0')
result = readfunc (process, buffer->str);
@@ -435,9 +436,7 @@ brasero_process_read (BraseroProcess *process,
return FALSE;
}
else if (status == G_IO_STATUS_EOF) {
- BRASERO_JOB_LOG (process,
- debug_prefixes [channel_type],
- "EOF");
+ PROCESS_READ_LOG ("EOF");
return FALSE;
}
else
@@ -445,9 +444,7 @@ brasero_process_read (BraseroProcess *process,
}
else if (condition & G_IO_HUP) {
/* only handle the HUP when we have read all available lines of output */
- BRASERO_JOB_LOG (process,
- debug_prefixes [channel_type],
- "HUP");
+ PROCESS_READ_LOG ("HUP");
return FALSE;
}
diff --git a/libbrasero-media/brasero-media-private.h b/libbrasero-media/brasero-media-private.h
index 365e9e1e..0358edde 100644
--- a/libbrasero-media/brasero-media-private.h
+++ b/libbrasero-media/brasero-media-private.h
@@ -64,7 +64,7 @@ brasero_media_to_string (BraseroMedia media,
void
brasero_media_message (const gchar *location,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (2, 3);
G_END_DECLS
diff --git a/libbrasero-media/brasero-media.c b/libbrasero-media/brasero-media.c
index 7ef28377..ad4f1aa2 100644
--- a/libbrasero-media/brasero-media.c
+++ b/libbrasero-media/brasero-media.c
@@ -488,20 +488,17 @@ brasero_media_message (const gchar *location,
...)
{
va_list arg_list;
- gchar *format_real;
if (!debug)
return;
- format_real = g_strdup_printf ("BraseroMedia: (at %s) %s\n",
- location,
- format);
+ format = printf ("BraseroMedia: (at %s) ", location);
va_start (arg_list, format);
- vprintf (format_real, arg_list);
+ vprintf (format, arg_list);
va_end (arg_list);
- g_free (format_real);
+ putchar ('\n');
}
#include <gtk/gtk.h>
diff --git a/libbrasero-utils/brasero-misc.c b/libbrasero-utils/brasero-misc.c
index 594d5a8b..c088953e 100644
--- a/libbrasero-utils/brasero-misc.c
+++ b/libbrasero-utils/brasero-misc.c
@@ -102,20 +102,17 @@ brasero_utils_debug_message (const gchar *location,
...)
{
va_list arg_list;
- gchar *format_real;
if (!use_debug)
return;
- format_real = g_strdup_printf ("BraseroUtils: (at %s) %s\n",
- location,
- format);
+ g_strdup_printf ("BraseroUtils: (at %s) ", location);
va_start (arg_list, format);
- vprintf (format_real, arg_list);
+ vprintf (format, arg_list);
va_end (arg_list);
- g_free (format_real);
+ putchar ('\n');
}
static gboolean
diff --git a/libbrasero-utils/brasero-misc.h b/libbrasero-utils/brasero-misc.h
index 26ccf955..b6f72ef6 100644
--- a/libbrasero-utils/brasero-misc.h
+++ b/libbrasero-utils/brasero-misc.h
@@ -55,7 +55,7 @@ brasero_utils_set_use_debug (gboolean active);
void
brasero_utils_debug_message (const gchar *location,
const gchar *format,
- ...);
+ ...) G_GNUC_PRINTF (2, 3);
#define BRASERO_UTILS_LOG(format, ...) \
brasero_utils_debug_message (G_STRLOC, \
diff --git a/plugins/transcode/burn-normalize.c b/plugins/transcode/burn-normalize.c
index 1a71b02e..c7f780f5 100644
--- a/plugins/transcode/burn-normalize.c
+++ b/plugins/transcode/burn-normalize.c
@@ -502,7 +502,7 @@ brasero_normalize_bus_messages (GstBus *bus,
case GST_MESSAGE_ERROR:
gst_message_parse_error (msg, &error, &debug);
- BRASERO_JOB_LOG (normalize, debug);
+ BRASERO_JOB_LOG (normalize, "%s", debug);
g_free (debug);
brasero_job_error (BRASERO_JOB (normalize), error);
diff --git a/plugins/transcode/burn-transcode.c b/plugins/transcode/burn-transcode.c
index b93d17af..05f2b28a 100644
--- a/plugins/transcode/burn-transcode.c
+++ b/plugins/transcode/burn-transcode.c
@@ -1549,7 +1549,7 @@ brasero_transcode_bus_messages (GstBus *bus,
case GST_MESSAGE_ERROR:
gst_message_parse_error (msg, &error, &debug);
- BRASERO_JOB_LOG (transcode, debug);
+ BRASERO_JOB_LOG (transcode, "%s", debug);
g_free (debug);
brasero_job_error (BRASERO_JOB (transcode), error);
diff --git a/plugins/transcode/burn-vob.c b/plugins/transcode/burn-vob.c
index 621c38af..a0f862be 100644
--- a/plugins/transcode/burn-vob.c
+++ b/plugins/transcode/burn-vob.c
@@ -142,7 +142,7 @@ brasero_vob_bus_messages (GstBus *bus,
case GST_MESSAGE_ERROR:
gst_message_parse_error (msg, &error, &debug);
- BRASERO_JOB_LOG (vob, debug);
+ BRASERO_JOB_LOG (vob, "%s", debug);
g_free (debug);
brasero_job_error (BRASERO_JOB (vob), error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]