Quellcode durchsuchen

Handle segfault in backlog_get

If instance->memb_state is not OPERATION or RECOVERY, we was passing NULL
to cs_queue_used call.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Jan Friesse vor 13 Jahren
Ursprung
Commit
2d4e7bebb5
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      exec/totemsrp.c

+ 4 - 1
exec/totemsrp.c

@@ -3414,7 +3414,10 @@ static unsigned int backlog_get (struct totemsrp_instance *instance)
 	if (instance->memb_state == MEMB_STATE_RECOVERY) {
 		queue_use = &instance->retrans_message_queue;
 	}
-	backlog = cs_queue_used (queue_use);
+
+	if (queue_use != NULL) {
+		backlog = cs_queue_used (queue_use);
+	}
 
 	instance->stats.token[instance->stats.latest_token].backlog_calc = backlog;
 	return (backlog);