changeset 32404:9afc383bb60a stable

Avoid use-after-free issue (bug #60882). * libinterp/parse-tree/oct-parse.yy (base_parser::make_for_command): Avoid use-after-free in (unimplemented?) parfor block.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 13 Oct 2023 14:58:46 +0200
parents 48599bdcc9ca
children f8b21920fe91 6a1f89bb969c
files libinterp/parse-tree/oct-parse.yy
diffstat 1 files changed, 9 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/oct-parse.yy	Thu Oct 05 20:41:02 2023 +0200
+++ b/libinterp/parse-tree/oct-parse.yy	Fri Oct 13 14:58:46 2023 +0200
@@ -3472,18 +3472,17 @@
 
             delete lhs;
           }
+        else if (parfor)
+          {
+            delete lhs;
+            delete expr;
+            delete maxproc;
+            delete body;
+
+            bison_error ("invalid syntax for parfor statement");
+          }
         else
           {
-            if (parfor)
-              {
-                delete lhs;
-                delete expr;
-                delete maxproc;
-                delete body;
-
-                bison_error ("invalid syntax for parfor statement");
-              }
-
             m_lexer.mark_as_variables (lhs->variable_names ());
 
             retval = new tree_complex_for_command (lhs, expr, body,