diff options
author | Andres Freund <andres@anarazel.de> | 2016-03-07 14:24:58 -0800 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2016-03-07 14:24:58 -0800 |
commit | e3e84fd35838a43feef94ea78534713d745e9a08 (patch) | |
tree | ea5e0de2b81e6018d20d12d3f7911fd04cbb8ddc /src/backend/replication/logical/reorderbuffer.c | |
parent | 89f8372cb3a223cace21d4037336bfb37e8dbf3c (diff) | |
download | postgresql-e3e84fd35838a43feef94ea78534713d745e9a08.tar.gz postgresql-e3e84fd35838a43feef94ea78534713d745e9a08.zip |
Further improvements to c8f621c43.
Coverity and inspection for the issue addressed in fd45d16f found some
questionable code.
Specifically coverity noticed that the wrong length was added in
ReorderBufferSerializeChange() - without immediate negative consequences
as the variable isn't used afterwards. During code-review and testing I
noticed that a bit of space was wasted when allocating tuple bufs in
several places. Thirdly, the debug memset()s in
ReorderBufferGetTupleBuf() reduce the error checking valgrind can do.
Backpatch: 9.4, like c8f621c43.
Diffstat (limited to 'src/backend/replication/logical/reorderbuffer.c')
-rw-r--r-- | src/backend/replication/logical/reorderbuffer.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 8eadb4bed18..1c8a5540516 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -469,12 +469,15 @@ ReorderBufferGetTupleBuf(ReorderBuffer *rb, Size tuple_len) rb->nr_cached_tuplebufs--; tuple = slist_container(ReorderBufferTupleBuf, node, slist_pop_head_node(&rb->cached_tuplebufs)); + Assert(tuple->alloc_tuple_size == MaxHeapTupleSize); #ifdef USE_ASSERT_CHECKING memset(&tuple->tuple, 0xa9, sizeof(HeapTupleData)); + VALGRIND_MAKE_MEM_UNDEFINED(&tuple->tuple, sizeof(HeapTupleData)); #endif tuple->tuple.t_data = ReorderBufferTupleBufData(tuple); #ifdef USE_ASSERT_CHECKING memset(tuple->tuple.t_data, 0xa8, tuple->alloc_tuple_size); + VALGRIND_MAKE_MEM_UNDEFINED(tuple->tuple.t_data, tuple->alloc_tuple_size); #endif } else |