View | Details | Raw Unified | Return to bug 227552 | Differences between
and this patch

Collapse All | Expand All

(-)b/readelf/readelf.c (-4 / +15 lines)
Lines 2372-2382 dump_phdr(struct readelf *re) Link Here
2372
		}
2372
		}
2373
		printf("   %2.2d     ", i);
2373
		printf("   %2.2d     ", i);
2374
		/* skip NULL section. */
2374
		/* skip NULL section. */
2375
		for (j = 1; (size_t)j < re->shnum; j++)
2375
		for (j = 1; (size_t)j < re->shnum; j++) {
2376
			if (re->sl[j].addr >= phdr.p_vaddr &&
2376
			if (re->sl[j].off < phdr.p_offset)
2377
			    re->sl[j].addr + re->sl[j].sz <=
2377
				continue;
2378
			if (re->sl[j].off + re->sl[j].sz >
2379
			    phdr.p_offset + phdr.p_filesz &&
2380
			    re->sl[j].type != SHT_NOBITS)
2381
				continue;
2382
			if (re->sl[j].addr < phdr.p_vaddr ||
2383
			    re->sl[j].addr + re->sl[j].sz >
2378
			    phdr.p_vaddr + phdr.p_memsz)
2384
			    phdr.p_vaddr + phdr.p_memsz)
2379
				printf("%s ", re->sl[j].name);
2385
				continue;
2386
			if (phdr.p_type == PT_TLS &&
2387
			    (re->sl[j].flags & SHF_TLS) == 0)
2388
				continue;
2389
			printf("%s ", re->sl[j].name);
2390
		}
2380
		printf("\n");
2391
		printf("\n");
2381
	}
2392
	}
2382
#undef	PH_HDR
2393
#undef	PH_HDR

Return to bug 227552