From: Paul Eggert Date: Fri, 19 Apr 2019 19:55:18 +0000 (-0700) Subject: Fix Fload dangling pointer X-Git-Tag: emacs-27.0.90~3193 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0f8628490e3e06f2bfe14451626f55b2165d711c;p=emacs.git Fix Fload dangling pointer * src/lread.c (Fload): Expand decl’s lifetime to match its use. Bug found by gcc -fsanitize=address. --- diff --git a/src/lread.c b/src/lread.c index f83db2ac9f9..6cd1029cd9f 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1439,6 +1439,10 @@ Return t if the file exists and loads successfully. */) specbind (Qinhibit_file_name_operation, Qnil); specbind (Qload_in_progress, Qt); + /* Declare here rather than inside the else-part because the storage + might be accessed by the unbind_to call below. */ + struct infile input; + if (is_module) { #ifdef HAVE_MODULES @@ -1453,7 +1457,6 @@ Return t if the file exists and loads successfully. */) } else { - struct infile input; input.stream = stream; input.lookahead = 0; infile = &input;