postgres.git / summary / log / commit / refs

commit    02bfd6d415bfacdf16a273420fd86c67189556ff
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Thu Jul 05 21:42:37 2018 +0000

    logical decoding: beware of an unset specinsert change
    
    Coverity complains that there is no protection in the code (at least in
    non-assertion-enabled builds) against speculative insertion failing to
    follow the expected protocol.  Add an elog(ERROR) for the case.


src/backend/replication/logical/reorderbuffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index f559ffac9dd..3606e9ec7ff 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -1512,6 +1512,8 @@ ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, * use as a normal record. It'll be cleaned up at the end * of INSERT processing. */ + if (specinsert == NULL) + elog(ERROR, "invalid ordering of speculative insertion changes"); Assert(specinsert->data.tp.oldtuple == NULL); change = specinsert; change->action = REORDER_BUFFER_CHANGE_INSERT; [parent: eedbbff504e4]