PR fortran/99147 - Sanitizer detects heap-use-after-free in gfc_add_flavor
authorHarald Anlauf <anlauf@gmx.de>
Fri, 19 Feb 2021 19:21:27 +0000 (20:21 +0100)
committerHarald Anlauf <anlauf@gmx.de>
Fri, 19 Feb 2021 19:21:27 +0000 (20:21 +0100)
Reverse order of conditions to avoid invalid read.

gcc/fortran/ChangeLog:

* symbol.c (gfc_add_flavor): Reverse order of conditions.

gcc/fortran/symbol.c

index 3b988d1be22c1ac2fbf41a10ed862b9b104f91c2..e982374d9d12f65e383f8dafc9349e043ef35eb8 100644 (file)
@@ -1772,8 +1772,8 @@ gfc_add_flavor (symbol_attribute *attr, sym_flavor f, const char *name,
   /* Copying a procedure dummy argument for a module procedure in a
      submodule results in the flavor being copied and would result in
      an error without this.  */
-  if (gfc_new_block && gfc_new_block->abr_modproc_decl
-      && attr->flavor == f && f == FL_PROCEDURE)
+  if (attr->flavor == f && f == FL_PROCEDURE
+      && gfc_new_block && gfc_new_block->abr_modproc_decl)
     return true;
 
   if (attr->flavor != FL_UNKNOWN)