[evolution-data-server] Address several issues reported by Coverity Scan



commit cb65943eee74033014e5d8313dec4a0ce32722c6
Author: Milan Crha <mcrha redhat com>
Date:   Thu Apr 18 18:53:34 2019 +0200

    Address several issues reported by Coverity Scan

 .../libedata-book/e-book-backend-summary.c         |  2 +-
 src/calendar/libecal/e-reminder-watcher.c          |  4 +++-
 src/camel/camel-message-info.h                     |  2 +-
 src/camel/camel-provider.h                         |  2 +-
 src/camel/camel-text-index.c                       | 22 +++++++++++++++++++---
 src/libedataserver/e-webdav-session.c              |  2 ++
 src/libedataserverui/e-reminders-widget.c          |  2 +-
 7 files changed, 28 insertions(+), 8 deletions(-)
---
diff --git a/src/addressbook/libedata-book/e-book-backend-summary.c 
b/src/addressbook/libedata-book/e-book-backend-summary.c
index 5b5fe7a01..dec60cd23 100644
--- a/src/addressbook/libedata-book/e-book-backend-summary.c
+++ b/src/addressbook/libedata-book/e-book-backend-summary.c
@@ -230,7 +230,7 @@ e_book_backend_summary_check_magic (EBookBackendSummary *summary,
        rv = fread (buf, PAS_SUMMARY_MAGIC_LEN, 1, fp);
        if (rv != 1)
                return FALSE;
-       if (strcmp (buf, PAS_SUMMARY_MAGIC))
+       if (strncmp (buf, PAS_SUMMARY_MAGIC, PAS_SUMMARY_MAGIC_LEN))
                return FALSE;
 
        return TRUE;
diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
index 22edd9dc0..b08a7f301 100644
--- a/src/calendar/libecal/e-reminder-watcher.c
+++ b/src/calendar/libecal/e-reminder-watcher.c
@@ -290,7 +290,9 @@ client_set_last_notification_time (ECalClient *client,
        iso8601 = e_source_alarms_dup_last_notified (alarms_extension);
 
        if (iso8601) {
-               g_time_val_from_iso8601 (iso8601, &tv);
+               if (!g_time_val_from_iso8601 (iso8601, &tv))
+                       tv.tv_sec = 0;
+
                g_free (iso8601);
        }
 
diff --git a/src/camel/camel-message-info.h b/src/camel/camel-message-info.h
index cd2bcb910..44cc2e451 100644
--- a/src/camel/camel-message-info.h
+++ b/src/camel/camel-message-info.h
@@ -89,7 +89,7 @@ typedef enum _CamelMessageFlags {
        CAMEL_MESSAGE_JUNK_LEARN = 1 << 30, /* used when setting CAMEL_MESSAGE_JUNK flag
                                             * to say that we request junk plugin
                                             * to learn that message as junk/non junk */
-       CAMEL_MESSAGE_USER = 1 << 31 /* supports user flags */
+       CAMEL_MESSAGE_USER = 1u << 31 /* supports user flags */
 } CamelMessageFlags;
 
 /* Changes to system flags will NOT trigger a folder changed event */
diff --git a/src/camel/camel-provider.h b/src/camel/camel-provider.h
index 04cc32c3f..11261a280 100644
--- a/src/camel/camel-provider.h
+++ b/src/camel/camel-provider.h
@@ -99,7 +99,7 @@ typedef enum {
        CAMEL_URL_HIDDEN_PATH = CAMEL_URL_PART_PATH << CAMEL_URL_PART_HIDDEN,
 
        CAMEL_URL_FRAGMENT_IS_PATH = 1 << 30, /* url uses fragment for folder name path, not path */
-       CAMEL_URL_PATH_IS_ABSOLUTE = 1 << 31,
+       CAMEL_URL_PATH_IS_ABSOLUTE = 1u << 31,
 } CamelProviderURLFlags;
 
 #define CAMEL_PROVIDER_IS_STORE_AND_TRANSPORT(provider) \
diff --git a/src/camel/camel-text-index.c b/src/camel/camel-text-index.c
index ba647189d..1c9bb4d59 100644
--- a/src/camel/camel-text-index.c
+++ b/src/camel/camel-text-index.c
@@ -1273,7 +1273,7 @@ camel_text_index_dump (CamelTextIndex *idx)
        CamelTextIndexPrivate *p = CAMEL_TEXT_INDEX_GET_PRIVATE (idx);
 #ifndef DUMP_RAW
        camel_key_t keyid;
-       gchar *word;
+       gchar *word = NULL;
        const gchar *name;
        guint flags;
        camel_block_t data;
@@ -1289,8 +1289,11 @@ camel_text_index_dump (CamelTextIndex *idx)
                else
                        printf (" %s (deleted)\n", word);
                g_free (word);
+               word = NULL;
        }
 
+       g_clear_pointer (&word, g_free);
+
        printf ("Word's in index\n");
 
        keyid = 0;
@@ -1306,7 +1309,10 @@ camel_text_index_dump (CamelTextIndex *idx)
                printf ("\n");
                g_object_unref (idc);
                g_free (word);
+               word = NULL;
        }
+
+       g_clear_pointer (&word, g_free);
 #else
        /* a more low-level dump routine */
        GHashTable *block_type = g_hash_table_new (NULL, NULL);
@@ -1331,7 +1337,7 @@ camel_text_index_validate (CamelTextIndex *idx)
 {
        CamelTextIndexPrivate *p = CAMEL_TEXT_INDEX_GET_PRIVATE (idx);
        camel_key_t keyid;
-       gchar *word;
+       gchar *word = NULL;
        const gchar *name;
        guint flags;
        camel_block_t data;
@@ -1369,8 +1375,12 @@ camel_text_index_validate (CamelTextIndex *idx)
                                g_hash_table_insert (deleted, GINT_TO_POINTER (keyid), word);
                        }
                }
+
+               word = NULL;
        }
 
+       g_clear_pointer (&word, g_free);
+
        printf ("Checking WORD member consistency\n");
 
        keyid = 0;
@@ -1435,13 +1445,19 @@ camel_text_index_validate (CamelTextIndex *idx)
                                g_free (records);
                        }
                }
+
+               word = NULL;
        }
 
+       g_clear_pointer (&word, g_free);
+
        g_hash_table_destroy (names);
        g_hash_table_destroy (deleted);
-       g_hash_table_destroy (words);
        g_hash_table_destroy (keys);
 
+       g_hash_table_foreach (words, (GHFunc) g_free, NULL);
+       g_hash_table_destroy (words);
+
        g_hash_table_foreach (name_word, (GHFunc) g_free, NULL);
        g_hash_table_destroy (name_word);
 
diff --git a/src/libedataserver/e-webdav-session.c b/src/libedataserver/e-webdav-session.c
index 32f8bcf92..accf5db31 100644
--- a/src/libedataserver/e-webdav-session.c
+++ b/src/libedataserver/e-webdav-session.c
@@ -4351,6 +4351,8 @@ e_webdav_session_extract_acl_principal (xmlXPathContextPtr xpath_ctx,
                                        if (href)
                                                *out_principal_hrefs = g_slist_prepend (*out_principal_hrefs, 
href);
                                }
+
+                               xmlXPathFreeObject (xpath_obj);
                        }
 
                        *out_principal_hrefs = g_slist_reverse (*out_principal_hrefs);
diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
index 7b42c2d95..f89cd4a5c 100644
--- a/src/libedataserverui/e-reminders-widget.c
+++ b/src/libedataserverui/e-reminders-widget.c
@@ -1028,7 +1028,7 @@ reminders_widget_add_snooze_add_button_clicked_cb (GtkButton *button,
 
        if (!found) {
                GVariant *variant;
-               gint32 array[MAX_CUSTOM_SNOOZE_VALUES] = { 0 }, narray = 0, ii;
+               gint32 array[MAX_CUSTOM_SNOOZE_VALUES + 1] = { 0 }, narray = 0, ii;
 
                variant = g_settings_get_value (reminders->priv->settings, "notify-custom-snooze-minutes");
                if (variant) {


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