fix-possible-invalid-pointer-read_stream.patch
application/octet-stream
Filename: fix-possible-invalid-pointer-read_stream.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/storage/aio/read_stream.c | 7 | 0 |
diff --git a/src/backend/storage/aio/read_stream.c b/src/backend/storage/aio/read_stream.c
index 04bdb5e6d4..18e9b4f3c4 100644
--- a/src/backend/storage/aio/read_stream.c
+++ b/src/backend/storage/aio/read_stream.c
@@ -666,6 +666,8 @@ read_stream_next_buffer(ReadStream *stream, void **per_buffer_data)
READ_BUFFERS_ISSUE_ADVICE : 0)))
{
/* Fast return. */
+ if (per_buffer_data)
+ *per_buffer_data = get_per_buffer_data(stream, oldest_buffer_index);
return buffer;
}
@@ -682,9 +684,14 @@ read_stream_next_buffer(ReadStream *stream, void **per_buffer_data)
stream->distance = 0;
stream->oldest_buffer_index = stream->next_buffer_index;
stream->pinned_buffers = 0;
+ oldest_buffer_index = stream->next_buffer_index;
}
stream->fast_path = false;
+
+ if (per_buffer_data)
+ *per_buffer_data = get_per_buffer_data(stream, oldest_buffer_index);
+
return buffer;
}
#endif