packages feed

elf 0.25 → 0.26

raw patch · 2 files changed

+29/−14 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

elf.cabal view
@@ -1,5 +1,5 @@ Name:          elf
-Version:       0.25
+Version:       0.26
 License:       BSD3
 License-file:  LICENSE
 Category:      Data
@@ -8,7 +8,7 @@ Maintainer:    Erik Charlebois <erikcharlebois@gmail.com>
 Stability:     unstable
 Cabal-Version: >= 1.6
-Homepage:      http://code.fac9.com/elf/
+Homepage:      http://github.com/erikcharlebois/elf
 Build-Depends: base
 Build-Type:    Custom
 Synopsis:      Parser for ELF object format.
src/Data/Elf.hs view
@@ -576,15 +576,16 @@   parseElfSegmentEntry :: ElfClass -> ElfReader -> B.ByteString -> Get ElfSegment-parseElfSegmentEntry elf_class er elf_file =-  do p_type   <- parseElfSegmentType  `fmap` getWord32 er+parseElfSegmentEntry elf_class er elf_file = case elf_class of+  ELFCLASS64 -> do+     p_type   <- parseElfSegmentType  `fmap` getWord32 er      p_flags  <- parseElfSegmentFlags `fmap` getWord32 er-     p_offset <- getWord-     p_vaddr  <- getWord-     p_paddr  <- getWord-     p_filesz <- getWord-     p_memsz  <- getWord-     p_align  <- getWord+     p_offset <- getWord64 er+     p_vaddr  <- getWord64 er+     p_paddr  <- getWord64 er+     p_filesz <- getWord64 er+     p_memsz  <- getWord64 er+     p_align  <- getWord64 er      return ElfSegment        { elfSegmentType     = p_type        , elfSegmentFlags    = p_flags@@ -595,10 +596,24 @@        , elfSegmentMemSize  = p_memsz        } -  where getWord = case elf_class of-                    ELFCLASS64 -> getWord64 er-                    ELFCLASS32 -> fromIntegral `fmap` getWord32 er-+  ELFCLASS32 -> do+     p_type   <- parseElfSegmentType  `fmap` getWord32 er+     p_offset <- fromIntegral `fmap` getWord32 er+     p_vaddr  <- fromIntegral `fmap` getWord32 er+     p_paddr  <- fromIntegral `fmap` getWord32 er+     p_filesz <- fromIntegral `fmap` getWord32 er+     p_memsz  <- fromIntegral `fmap` getWord32 er+     p_flags  <- parseElfSegmentFlags `fmap` getWord32 er+     p_align  <- fromIntegral `fmap` getWord32 er+     return ElfSegment+       { elfSegmentType     = p_type+       , elfSegmentFlags    = p_flags+       , elfSegmentVirtAddr = p_vaddr+       , elfSegmentPhysAddr = p_paddr+       , elfSegmentAlign    = p_align+       , elfSegmentData     = B.take (fromIntegral p_filesz) $ B.drop (fromIntegral p_offset) elf_file+       , elfSegmentMemSize  = p_memsz+       }  data ElfSegmentFlag   = PF_X        -- ^ Execute permission