From c31ab5a0010ac9e3d31fd218fffcff1b9696363e Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 21 May 2020 09:48:35 +0930 Subject: asan: readelf: wild read in get_num_dynamic_syms * readelf.c (get_num_dynamic_syms): Bounds check mipsxlat array access. --- binutils/readelf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'binutils/readelf.c') diff --git a/binutils/readelf.c b/binutils/readelf.c index 87bb574..798782c 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -10211,7 +10211,8 @@ get_num_dynamic_syms (Filedata * filedata) { if (filedata->dynamic_info_DT_MIPS_XHASH) { - if (filedata->mipsxlat[off] >= num_of_syms) + if (off < filedata->ngnuchains + && filedata->mipsxlat[off] >= num_of_syms) num_of_syms = filedata->mipsxlat[off] + 1; } else -- cgit v1.1