[evolution-data-server] Address some issues reported by Undefined Behavior Sanitizer
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Address some issues reported by Undefined Behavior Sanitizer
- Date: Thu, 25 Jan 2018 10:34:41 +0000 (UTC)
commit 036b0edc9013451896add51168ac9d7827ca754c
Author: Milan Crha <mcrha redhat com>
Date: Thu Jan 25 11:33:03 2018 +0100
Address some issues reported by Undefined Behavior Sanitizer
The runtime warning was:
- null pointer passed as argument NNN, which is declared to never be null
src/calendar/libecal/e-cal-recur.c | 14 ++++++++------
src/camel/camel-provider.c | 3 ++-
src/camel/camel-store.c | 3 ++-
src/camel/camel-vee-store.c | 3 ++-
src/camel/providers/imapx/camel-imapx-logger.c | 3 ++-
5 files changed, 16 insertions(+), 10 deletions(-)
---
diff --git a/src/calendar/libecal/e-cal-recur.c b/src/calendar/libecal/e-cal-recur.c
index fc14fb1..691496c 100644
--- a/src/calendar/libecal/e-cal-recur.c
+++ b/src/calendar/libecal/e-cal-recur.c
@@ -2020,9 +2020,10 @@ generate_instances_for_chunk (ECalComponent *comp,
cal_obj_sort_occurrences (occs);
cal_obj_sort_occurrences (ex_occs);
- qsort (
- rdate_periods->data, rdate_periods->len,
- sizeof (CalObjRecurrenceDate), cal_obj_time_compare_func);
+ if (rdate_periods->data && rdate_periods->len) {
+ qsort (rdate_periods->data, rdate_periods->len,
+ sizeof (CalObjRecurrenceDate), cal_obj_time_compare_func);
+ }
/* Create the final array, by removing the exceptions from the
* occurrences, and removing any duplicates. */
@@ -2677,9 +2678,10 @@ cal_obj_initialize_recur_data (RecurData *recur_data,
static void
cal_obj_sort_occurrences (GArray *occs)
{
- qsort (
- occs->data, occs->len, sizeof (CalObjTime),
- cal_obj_time_compare_func);
+ if (occs->data && occs->len) {
+ qsort (occs->data, occs->len, sizeof (CalObjTime),
+ cal_obj_time_compare_func);
+ }
}
static void
diff --git a/src/camel/camel-provider.c b/src/camel/camel-provider.c
index cd13f46..ba7a87d 100644
--- a/src/camel/camel-provider.c
+++ b/src/camel/camel-provider.c
@@ -129,7 +129,8 @@ provider_register_internal (CamelProvider *provider)
#define P_(string) dgettext (provider->translation_domain, string)
provider->name = P_(provider->name);
- provider->description = P_(provider->description);
+ if (provider->description)
+ provider->description = P_(provider->description);
conf = provider->extra_conf;
if (conf != NULL) {
diff --git a/src/camel/camel-store.c b/src/camel/camel-store.c
index 577b6bb..8b3b97d 100644
--- a/src/camel/camel-store.c
+++ b/src/camel/camel-store.c
@@ -1174,7 +1174,8 @@ camel_folder_info_build (GPtrArray *folders,
namespace_ = "";
nlen = strlen (namespace_);
- qsort (folders->pdata, folders->len, sizeof (folders->pdata[0]), folder_info_cmp);
+ if (folders->pdata && folders->len)
+ qsort (folders->pdata, folders->len, sizeof (folders->pdata[0]), folder_info_cmp);
/* Hash the folders. */
hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
diff --git a/src/camel/camel-vee-store.c b/src/camel/camel-vee-store.c
index c6836fe..122f569 100644
--- a/src/camel/camel-vee-store.c
+++ b/src/camel/camel-vee-store.c
@@ -288,7 +288,8 @@ vee_store_get_folder_info_sync (CamelStore *store,
infos_hash = g_hash_table_new (g_str_hash, g_str_equal);
folders = camel_store_dup_opened_folders (store);
- qsort (folders->pdata, folders->len, sizeof (folders->pdata[0]), vee_folder_cmp);
+ if (folders->pdata && folders->len)
+ qsort (folders->pdata, folders->len, sizeof (folders->pdata[0]), vee_folder_cmp);
for (i = 0; i < folders->len; i++) {
CamelVeeFolder *folder = folders->pdata[i];
const gchar *full_name;
diff --git a/src/camel/providers/imapx/camel-imapx-logger.c b/src/camel/providers/imapx/camel-imapx-logger.c
index 084bc27..50819e5 100644
--- a/src/camel/providers/imapx/camel-imapx-logger.c
+++ b/src/camel/providers/imapx/camel-imapx-logger.c
@@ -118,7 +118,8 @@ imapx_logger_convert (GConverter *converter,
min_size = MIN (inbuf_size, outbuf_size);
- memcpy (outbuf, inbuf, min_size);
+ if (inbuf && min_size)
+ memcpy (outbuf, inbuf, min_size);
*bytes_read = *bytes_written = min_size;
login_start = g_strstr_len (outbuf, min_size, " LOGIN ");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]