From 3ee7e5f80070f83fffe2e3fea7b63aa35cdaa7f3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 28 Feb 2021 12:30:12 +0530 Subject: [PATCH] Fix another use after free caused by a re-assigned pointer --- kitty/history.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kitty/history.c b/kitty/history.c index 0a6df0f02..1facaa556 100644 --- a/kitty/history.c +++ b/kitty/history.c @@ -397,7 +397,7 @@ pagerhist_write(HistoryBuf *self, PyObject *what) { static PyObject* pagerhist_as_bytes(HistoryBuf *self, PyObject *args UNUSED) { - PagerHistoryBuf *ph = self->pagerhist; +#define ph self->pagerhist if (!ph || !ringbuf_bytes_used(ph->ringbuf)) return PyBytes_FromStringAndSize("", 0); pagerhist_ensure_start_is_valid_utf8(ph); if (ph->rewrap_needed) pagerhist_rewrap_to(self, self->xnum); @@ -411,6 +411,7 @@ pagerhist_as_bytes(HistoryBuf *self, PyObject *args UNUSED) { ringbuf_memcpy_from(buf, ph->ringbuf, sz); if (!l.continued) buf[sz-1] = '\n'; return ans; +#undef ph } static PyObject *