Possible dereference null return (src/backend/replication/logical/reorderbuffer.c)

Поиск
Список
Период
Сортировка
От Ranier Vilela
Тема Possible dereference null return (src/backend/replication/logical/reorderbuffer.c)
Дата
Msg-id CAEudQAoxLGtyt3XmOzCi091dpW+o__9DmuE9rmRmDsdyXEpVVA@mail.gmail.com
обсуждение исходный текст
Ответы Re: Possible dereference null return (src/backend/replication/logical/reorderbuffer.c)  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Список pgsql-hackers
Hi,

Per Coverity.

If xid is a subtransaction, the setup of base snapshot on the top-level transaction,
can be not optional, otherwise a Dereference null return value (NULL_RETURNS) can be raised.

Patch suggestion to fix this.

diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index 5a62ab8bbc..3c6a81f716 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -2993,8 +2993,8 @@ ReorderBufferSetBaseSnapshot(ReorderBuffer *rb, TransactionId xid,
  */
  txn = ReorderBufferTXNByXid(rb, xid, true, &is_new, lsn, true);
  if (rbtxn_is_known_subxact(txn))
- txn = ReorderBufferTXNByXid(rb, txn->toplevel_xid, false,
- NULL, InvalidXLogRecPtr, false);
+ txn = ReorderBufferTXNByXid(rb, txn->toplevel_xid, true,
+ NULL, InvalidXLogRecPtr, true);
  Assert(txn->base_snapshot == NULL);
 
  txn->base_snapshot = snap;

regards,
Ranier Vilela
Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Ranier Vilela
Дата:
Сообщение: Possible dereference after null check (src/backend/executor/ExecUtils.c)
Следующее
От: Greg Nancarrow
Дата:
Сообщение: Re: Parallel INSERT (INTO ... SELECT ...)