aboutsummaryrefslogtreecommitdiffstats
path: root/sys/syz-extract/fetch.go
diff options
context:
space:
mode:
Diffstat (limited to 'sys/syz-extract/fetch.go')
-rw-r--r--sys/syz-extract/fetch.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/syz-extract/fetch.go b/sys/syz-extract/fetch.go
index 129385b7e..dd0c6aeb3 100644
--- a/sys/syz-extract/fetch.go
+++ b/sys/syz-extract/fetch.go
@@ -24,6 +24,7 @@ type extractParams struct {
DeclarePrintf bool
DefineGlibcUse bool // workaround for incorrect flags to clang for fuchsia.
ExtractFromELF bool
+ TargetEndian binary.ByteOrder
}
func extract(info *compiler.ConstInfo, cc string, args []string, params *extractParams) (
@@ -76,7 +77,7 @@ func extract(info *compiler.ConstInfo, cc string, args []string, params *extract
var flagVals []uint64
if data.ExtractFromELF {
- flagVals, err = extractFromELF(bin)
+ flagVals, err = extractFromELF(bin, params.TargetEndian)
} else {
flagVals, err = extractFromExecutable(bin)
}
@@ -146,7 +147,7 @@ func extractFromExecutable(binFile string) ([]uint64, error) {
return vals, nil
}
-func extractFromELF(binFile string) ([]uint64, error) {
+func extractFromELF(binFile string, targetEndian binary.ByteOrder) ([]uint64, error) {
f, err := os.Open(binFile)
if err != nil {
return nil, err
@@ -164,7 +165,7 @@ func extractFromELF(binFile string) ([]uint64, error) {
return nil, err
}
vals := make([]uint64, len(data)/8)
- if err := binary.Read(bytes.NewReader(data), binary.LittleEndian, &vals); err != nil {
+ if err := binary.Read(bytes.NewReader(data), targetEndian, &vals); err != nil {
return nil, err
}
return vals, nil