[evolution] Check whether enum-based ICalParameter had been created before using it



commit 14aef61c84fa80a5fea2b1d3b7e97975b59eb85e
Author: Milan Crha <mcrha redhat com>
Date:   Fri Jun 28 12:28:26 2019 +0200

    Check whether enum-based ICalParameter had been created before using it
    
    An enum-based ICalProperty is not created for cases when an invalid
    enum value is NULL. Passing NULL to i_cal_propert_take_parameter()
    produces runtime warning.

 src/calendar/gui/e-comp-editor-page-general.c | 9 ++++++---
 src/modules/itip-formatter/itip-view.c        | 9 ++++++---
 2 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/src/calendar/gui/e-comp-editor-page-general.c b/src/calendar/gui/e-comp-editor-page-general.c
index 250ef24307..1c2a1a44ac 100644
--- a/src/calendar/gui/e-comp-editor-page-general.c
+++ b/src/calendar/gui/e-comp-editor-page-general.c
@@ -1164,13 +1164,16 @@ ecep_general_fill_component (ECompEditorPage *page,
                                }
 
                                param = i_cal_parameter_new_cutype (e_meeting_attendee_get_cutype (attendee));
-                               i_cal_property_take_parameter (prop, param);
+                               if (param)
+                                       i_cal_property_take_parameter (prop, param);
 
                                param = i_cal_parameter_new_role (e_meeting_attendee_get_role (attendee));
-                               i_cal_property_take_parameter (prop, param);
+                               if (param)
+                                       i_cal_property_take_parameter (prop, param);
 
                                param = i_cal_parameter_new_partstat (e_meeting_attendee_get_partstat 
(attendee));
-                               i_cal_property_take_parameter (prop, param);
+                               if (param)
+                                       i_cal_property_take_parameter (prop, param);
 
                                param = i_cal_parameter_new_rsvp (e_meeting_attendee_get_rsvp (attendee) ? 
I_CAL_RSVP_TRUE : I_CAL_RSVP_FALSE);
                                i_cal_property_take_parameter (prop, param);
diff --git a/src/modules/itip-formatter/itip-view.c b/src/modules/itip-formatter/itip-view.c
index badd3a8759..2090ae41e7 100644
--- a/src/modules/itip-formatter/itip-view.c
+++ b/src/modules/itip-formatter/itip-view.c
@@ -4596,7 +4596,8 @@ change_status (ESourceRegistry *registry,
 
                i_cal_property_remove_parameter_by_kind (prop, I_CAL_PARTSTAT_PARAMETER);
                param = i_cal_parameter_new_partstat (partstat);
-               i_cal_property_take_parameter (prop, param);
+               if (param)
+                       i_cal_property_take_parameter (prop, param);
 
                g_object_unref (prop);
        } else {
@@ -4613,7 +4614,8 @@ change_status (ESourceRegistry *registry,
                        i_cal_property_take_parameter (prop, param);
 
                        param = i_cal_parameter_new_partstat (partstat);
-                       i_cal_property_take_parameter (prop, param);
+                       if (param)
+                               i_cal_property_take_parameter (prop, param);
 
                        i_cal_component_take_property (icomp, prop);
                } else {
@@ -4637,7 +4639,8 @@ change_status (ESourceRegistry *registry,
                        i_cal_property_take_parameter (prop, param);
 
                        param = i_cal_parameter_new_partstat (partstat);
-                       i_cal_property_take_parameter (prop, param);
+                       if (param)
+                               i_cal_property_take_parameter (prop, param);
 
                        i_cal_component_take_property (icomp, prop);
 


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