changeset 33372:e04e556d836c

oct-parse.yy: Avoid dereferencing deleted object. * oct-parse.yy (base_parser::make_classdef): Store file position in local variable before deleting object.
author Markus Mützel <markus.muetzel@gmx.de>
date Wed, 10 Apr 2024 17:42:39 +0200
parents ff7cb15e068d
children 2399268f5167
files libinterp/parse-tree/oct-parse.yy
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/oct-parse.yy	Wed Apr 10 17:13:50 2024 +0200
+++ b/libinterp/parse-tree/oct-parse.yy	Wed Apr 10 17:42:39 2024 +0200
@@ -3986,12 +3986,14 @@
 
   if (short_name != cls_name)
     {
+      filepos f_pos = id->beg_pos ();
+
       delete a;
       delete id;
       delete sc;
       delete body;
 
-      bison_error ("invalid classdef definition, the class name must match the filename", id->beg_pos ());
+      bison_error ("invalid classdef definition, the class name must match the filename", f_pos);
 
     }
   else