Forráskód Böngészése

Ticket 49380 - Crash when adding invalid replication agreement

    Bug Description:  If you add a replication agreement with an invalid "replicaEnabled" value
                      the server crashes when freeing the replica schedule.  This is because the
                      schedule never gets allocated before the rror conidtion is hit, and then
                      it get dereferenced.

    Fix Description:  Check for a NULL schedule before trying to destroy it.

    https://pagure.io/389-ds-base/issue/49380

    Reviewed by: tbordaz(Thanks!)
Mark Reynolds 8 éve
szülő
commit
610db4727e
1 módosított fájl, 8 hozzáadás és 1 törlés
  1. 8 1
      ldap/servers/plugins/replication/repl5_schedule.c

+ 8 - 1
ldap/servers/plugins/replication/repl5_schedule.c

@@ -130,6 +130,9 @@ schedule_destroy(Schedule *s)
 {
     int i;
 
+    if (s == NULL) {
+        return;
+    }
     /* unschedule update window event if exists */
     unschedule_window_state_change_event(s);
 
@@ -172,11 +175,15 @@ free_schedule_list(schedule_item **schedule_list)
 int
 schedule_set(Schedule *sch, Slapi_Attr *attr)
 {
-    int return_value;
+    int return_value = -1;
     schedule_item *si = NULL;
     schedule_item *new_schedule_list = NULL;
     int valid = 1;
 
+    if (sch == NULL) {
+        return return_value;
+    }
+
     if (NULL != attr) {
         int ind;
         Slapi_Value *sval;