[tracker-miners/wip/carlosg/coverity-fixes: 11/16] tracker-writeback: Ensure keywords string is initialized before use




commit ffb65b73ecec978d1f53b4ad78b0376429e4714b
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Sep 7 18:45:48 2020 +0200

    tracker-writeback: Ensure keywords string is initialized before use
    
    Also fix typos in the internal loop checks (we are checking keywords
    to determine if keyword_str was null). All spotted by Coverity
    
    CID: #359686, #359687, #359688, #359690

 src/tracker-writeback/tracker-writeback-gstreamer.c |  9 ++++-----
 src/tracker-writeback/tracker-writeback-xmp.c       | 10 +++++-----
 2 files changed, 9 insertions(+), 10 deletions(-)
---
diff --git a/src/tracker-writeback/tracker-writeback-gstreamer.c 
b/src/tracker-writeback/tracker-writeback-gstreamer.c
index 21be79872..d83c9a13e 100644
--- a/src/tracker-writeback/tracker-writeback-gstreamer.c
+++ b/src/tracker-writeback/tracker-writeback-gstreamer.c
@@ -909,7 +909,7 @@ writeback_gstreamer_write_file_metadata (TrackerWritebackFile  *writeback,
 
                if (g_strcmp0 (prop, "nie:keyword") == 0) {
                        GList *keywords, *k;
-                       GString *keyword_str = NULL;
+                       GString *keyword_str = g_string_new (NULL);
 
                        keywords = tracker_resource_get_values (resource, prop);
 
@@ -921,10 +921,9 @@ writeback_gstreamer_write_file_metadata (TrackerWritebackFile  *writeback,
                                if (G_VALUE_HOLDS_STRING (value)) {
                                        const gchar *str = g_value_get_string (value);
 
-                                       if (!keywords)
-                                               keyword_str = g_string_new (str);
-                                       else
-                                               g_string_append_printf (keyword_str, ",%s", str);
+                                       if (keyword_str->len > 0)
+                                               g_string_append_c (keyword_str, ',');
+                                       g_string_append_printf (keyword_str, "%s", str);
                                }
                        }
 
diff --git a/src/tracker-writeback/tracker-writeback-xmp.c b/src/tracker-writeback/tracker-writeback-xmp.c
index fc100a84c..481696994 100644
--- a/src/tracker-writeback/tracker-writeback-xmp.c
+++ b/src/tracker-writeback/tracker-writeback-xmp.c
@@ -248,7 +248,7 @@ writeback_xmp_write_file_metadata (TrackerWritebackFile  *wbf,
 
                if (g_strcmp0 (prop, "nie:keyword") == 0) {
                        GList *keywords, *k;
-                       GString *keyword_str = NULL;
+                       GString *keyword_str = g_string_new (NULL);
 
                        keywords = tracker_resource_get_values (resource, prop);
 
@@ -260,10 +260,10 @@ writeback_xmp_write_file_metadata (TrackerWritebackFile  *wbf,
                                if (G_VALUE_HOLDS_STRING (value)) {
                                        const gchar *str = g_value_get_string (value);
 
-                                       if (!keywords)
-                                               keyword_str = g_string_new (str);
-                                       else
-                                               g_string_append_printf (keyword_str, ", %s", str);
+                                       if (keyword_str->len > 0)
+                                               g_string_append_c (keyword_str, ',');
+
+                                       g_string_append_printf (keyword_str, "%s", str);
                                }
                        }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]