Print this page
4000 pvs can't deal with extended sections

*** 1088,1097 **** --- 1088,1098 ---- * Open the input file and initialize the elf interface. */ for (; optind < argc; optind++) { int derror = 0, nerror = 0, err; const char *file = argv[optind]; + size_t shnum = 0; if ((var = open(file, O_RDONLY)) == -1) { err = errno; (void) fprintf(stderr, MSG_INTL(MSG_SYS_OPEN), cname, file, strerror(err));
*** 1152,1162 **** * structures and their associated symbols and strings live. * However, God knows what someone can do with a mapfile, and * as elf_begin has already gone through all the overhead we * might as well set up the cache for every section. */ ! if ((cache = calloc(ehdr.e_shnum, sizeof (Cache))) == NULL) { int err = errno; (void) fprintf(stderr, MSG_INTL(MSG_SYS_MALLOC), cname, file, strerror(err)); exit(1); } --- 1153,1169 ---- * structures and their associated symbols and strings live. * However, God knows what someone can do with a mapfile, and * as elf_begin has already gone through all the overhead we * might as well set up the cache for every section. */ ! if (elf_getshdrnum(elf, &shnum) == -1) { ! (void) fprintf(stderr, MSG_ORIG(MSG_ELF_GETSHDRNUM), ! cname, file, elf_errmsg(elf_errno())); ! exit(1); ! } ! ! if ((cache = calloc(shnum, sizeof (Cache))) == NULL) { int err = errno; (void) fprintf(stderr, MSG_INTL(MSG_SYS_MALLOC), cname, file, strerror(err)); exit(1); }