diff --git a/src/gausskernel/storage/replication/syncrep.cpp b/src/gausskernel/storage/replication/syncrep.cpp index 299ce78e0..0f33acdcc 100755 --- a/src/gausskernel/storage/replication/syncrep.cpp +++ b/src/gausskernel/storage/replication/syncrep.cpp @@ -1104,8 +1104,9 @@ static List* SyncRepGetSyncStandbysQuorum(bool* am_sync, List** catchup_standbys /* Must be streaming */ if (walsnd->state != WALSNDSTATE_STREAMING) { - *catchup_standbys = - walsnd->state == WALSNDSTATE_CATCHUP ? lappend_int(*catchup_standbys, i) : *catchup_standbys; + if (catchup_standbys != NULL && walsnd->state == WALSNDSTATE_CATCHUP) { + *catchup_standbys = lappend_int(*catchup_standbys, i); + } continue; } @@ -1174,8 +1175,9 @@ static List* SyncRepGetSyncStandbysPriority(bool* am_sync, List** catchup_standb /* Must be streaming */ if (walsnd->state != WALSNDSTATE_STREAMING) { - *catchup_standbys = - walsnd->state == WALSNDSTATE_CATCHUP ? lappend_int(*catchup_standbys, i) : *catchup_standbys; + if (catchup_standbys != NULL && walsnd->state == WALSNDSTATE_CATCHUP) { + *catchup_standbys = lappend_int(*catchup_standbys, i); + } continue; }