From 38ef9f36cf2c31bef5d3c0f122cadd5b8c291c0e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 6 Jun 2022 14:27:17 +0930 Subject: [PATCH] asan: double free sb_kill oss-fuzz hits a flaky crash with a double-free. I think this is due to gas static state not being reinitialised between testcases, a bug with oss-fuzz not gas. Anyway, this patch should avoid the problem. * input-scrub.c (input_scrub_push): Move init of sb_index.. (input_scrub_reinit): ..to here. --- gas/input-scrub.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gas/input-scrub.c b/gas/input-scrub.c index f65cd7957b1..ec0b007c77a 100644 --- a/gas/input-scrub.c +++ b/gas/input-scrub.c @@ -139,6 +139,7 @@ input_scrub_reinit (void) input_file_begin (); /* Reinitialize! */ logical_input_line = -1u; logical_input_file = NULL; + sb_index = -1; buffer_length = input_file_buffer_size () * 2; buffer_start = XNEWVEC (char, BEFORE_SIZE + AFTER_SIZE + 1 + buffer_length); @@ -172,8 +173,6 @@ input_scrub_push (char *saved_position) saved->next_saved_file = next_saved_file; saved->input_file_save = input_file_push (); - sb_index = -1; - input_scrub_reinit (); return saved; -- 2.30.2