asan: segv in parse_module

Message ID Y7V+U0bOlfYE++6E@squeak.grove.modra.org
State Repeat Merge
Headers
Series asan: segv in parse_module |

Checks

Context Check Description
snail/binutils-gdb-check warning Git am fail log

Commit Message

Alan Modra Jan. 4, 2023, 1:25 p.m. UTC
  * vms-alpha.c (parse_module): Ignore DST__K_SRC_SETFILE data
	if out of range.
  

Patch

diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index a9f87962f5b..fd2cf50441f 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -4577,8 +4577,11 @@  parse_module (bfd *abfd, struct module *module, unsigned char *ptr,
 
 		case DST__K_SRC_SETFILE:
 		  data = bfd_getl16 (src_ptr + DST_S_W_SRC_UNSWORD);
-		  curr_srec->sfile = data;
-		  curr_srec->srec = module->file_table[data].srec;
+		  if ((unsigned int) data < module->file_table_count)
+		    {
+		      curr_srec->sfile = data;
+		      curr_srec->srec = module->file_table[data].srec;
+		    }
 		  vms_debug2 ((4, "DST_S_C_SRC_SETFILE: %d\n", data));
 		  break;