sled

Једноставни уређивач текста
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 479b3c12e47a583c76306d9e5c12b2c88b173474
родитељ fd6f3bf493e955b6089e6c1465c783fb81a6e0e7
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Fri, 18 Feb 2022 21:32:49 +0100

Prevent leak in DrawState.buffer (asan)

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Mdraw.c | 2+-
Msled.c | 6+++---
измењених датотека: 2, додавања: 4(+), брисања: 4(-)

diff --git a/draw.c b/draw.c @@ -115,7 +115,7 @@ void free_drawstate(struct DrawState* state) { size_t row = 0; - for (row = 0; row < state->rows_count; row++) + for (row = 0; row < state->buffer_size; row++) free_bufferline(state->buffer + row); free(state->buffer); for (row = 0; row < state->paste_rows_count; row++) diff --git a/sled.c b/sled.c @@ -151,7 +151,7 @@ reread_file(struct DrawState* state) size_t row = 0; int result; - for (row = 0; row < state->rows_count; row++) + for (row = 0; row < state->buffer_size; row++) free_bufferline(state->buffer + row); free(state->buffer); for (row = 0; row < state->paste_rows_count; row++) @@ -198,12 +198,12 @@ quit_callback(struct DrawState* state, struct tb_event* ev) int load_file(struct DrawState* state, long* lineno, long* col) { - struct BufferLine* newchunk - = calloc(ALLOC_DELTA, sizeof(struct BufferLine)); + struct BufferLine* newchunk = NULL; struct BufferLine* line = NULL; FILE* input = NULL; char input_line[MAXBUFLINE]; + newchunk = calloc(ALLOC_DELTA, sizeof(struct BufferLine)); if (!newchunk) return LOAD_ERR_CANT_ALLOC;