##// END OF EJS Templates
removed elf_getphdrnum need for old Ubuntu versions...
Jeandet Alexis -
r7:4c09cf9ebb16 default
parent child
Show More
@@ -776,18 +776,21 void ElfFile::updateSections()
776 776
777 777 void ElfFile::updateSegments()
778 778 {
779 elf_getphdrnum (this->e , &this->SegmentCount);
780 779 for(int i=0;i<this->Segments.count();i++)
781 780 {
782 781 free(this->Segments.at(i));
783 782 }
784 783 this->Segments.clear();
785 for(int i=0;i<(int)this->SegmentCount;i++)
784 this->SegmentCount = 0;
785 GElf_Phdr* header=(GElf_Phdr*)malloc(sizeof(GElf_Phdr));
786 while ( header == gelf_getphdr(this->e ,this->SegmentCount, header ))
786 787 {
787 GElf_Phdr* header=(GElf_Phdr*)malloc(sizeof(GElf_Phdr));
788 gelf_getphdr (this->e , i , header );
789 788 this->Segments.append(header);
789 this->SegmentCount++;
790 header=(GElf_Phdr*)malloc(sizeof(GElf_Phdr));
790 791 }
792 this->SegmentCount = this->Segments.count();
793 free(header);
791 794 }
792 795
793 796 void ElfFile::updateSymbols()
@@ -433,18 +433,21 void elfparser::updateSections()
433 433
434 434 void elfparser::updateSegments()
435 435 {
436 elf_getphdrnum (this->e , &this->SegmentCount);
437 436 for(int i=0;i<this->Segments.count();i++)
438 437 {
439 438 free(this->Segments.at(i));
440 439 }
441 440 this->Segments.clear();
442 for(int i=0;i<(int)this->SegmentCount;i++)
441 this->SegmentCount = 0;
442 GElf_Phdr* header=(GElf_Phdr*)malloc(sizeof(GElf_Phdr));
443 while ( header == gelf_getphdr(this->e ,this->SegmentCount, header ))
443 444 {
444 GElf_Phdr* header=(GElf_Phdr*)malloc(sizeof(GElf_Phdr));
445 gelf_getphdr (this->e , i , header );
446 445 this->Segments.append(header);
446 this->SegmentCount++;
447 header=(GElf_Phdr*)malloc(sizeof(GElf_Phdr));
447 448 }
449 this->SegmentCount = this->Segments.count();
450 free(header);
448 451 }
449 452
450 453
General Comments 0
You need to be logged in to leave comments. Login now