Fix seg-fault in the binutils utilities when reading a corrupt input file. PR binutils/20905 * peicode.h (pe_ILF_object_p): Use strnlen to avoid running over the end of the string buffer. Upstream-Status: Backport CVE: CVE-2017-7226 Signed-off-by: Thiruvadi Rajaraman Index: git/bfd/ChangeLog =================================================================== --- git.orig/bfd/ChangeLog 2017-08-23 13:59:16.868424171 +0530 +++ git/bfd/ChangeLog 2017-08-23 14:03:22.683013823 +0530 @@ -39,6 +39,12 @@ (bfd_elf_final_link): Only initialize the extended symbol index section if there are extended symbol tables to list. +2016-12-05 Nick Clifton + + PR binutils/20905 + * peicode.h (pe_ILF_object_p): Use strnlen to avoid running over + the end of the string buffer. + 2016-08-02 Nick Clifton PR ld/17739 Index: git/bfd/peicode.h =================================================================== --- git.orig/bfd/peicode.h 2017-08-23 13:59:06.948319100 +0530 +++ git/bfd/peicode.h 2017-08-23 13:59:16.920424722 +0530 @@ -1264,7 +1264,8 @@ } symbol_name = (char *) ptr; - source_dll = symbol_name + strlen (symbol_name) + 1; + /* See PR 20905 for an example of where the strnlen is necessary. */ + source_dll = symbol_name + strnlen (symbol_name, size - 1) + 1; /* Verify that the strings are null terminated. */ if (ptr[size - 1] != 0