summaryrefslogtreecommitdiffstats
path: root/tools/patchelf/patches/0001-patchelf-Check-ELF-endianness-before-writing-new-run.patch
blob: 197a321f7273430960fae4ced58531fb7275cad3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From 9c9efd0525ac1e11f83029b8df5303a47ab6fe56 Mon Sep 17 00:00:00 2001
From: Bryce Ferguson <bryce.ferguson@rockwellcollins.com>
Date: Mon, 25 Jun 2018 13:50:46 -0500
Subject: [PATCH] patchelf: Check ELF endianness before writing new runpath
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit e88d83c8b4e42a3358a90b781a5a98efa279ff15 ]

This commit modifies the way fields are written in the dynamic
section in order to account the architecture of the target ELF
file. Instead of copying the raw data, use the helper functions
to convert endianness.

Signed-off-by: Bryce Ferguson <bryce.ferguson@rockwellcollins.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [version 0.9 backport]
---
 src/patchelf.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/patchelf.cc b/src/patchelf.cc
index 136098fbeeda..383c78a46ee4 100644
--- a/src/patchelf.cc
+++ b/src/patchelf.cc
@@ -1171,13 +1171,13 @@ void ElfFile<ElfFileParamNames>::modifyRPath(RPathOp op, string newRPath)
     debug("new rpath is `%s'\n", newRPath.c_str());
 
     if (!forceRPath && dynRPath && !dynRunPath) { /* convert DT_RPATH to DT_RUNPATH */
-        dynRPath->d_tag = DT_RUNPATH;
+        wri(dynRPath->d_tag, DT_RUNPATH);
         dynRunPath = dynRPath;
         dynRPath = 0;
     }
 
     if (forceRPath && dynRPath && dynRunPath) { /* convert DT_RUNPATH to DT_RPATH */
-        dynRunPath->d_tag = DT_IGNORE;
+        wri(dynRunPath->d_tag, DT_IGNORE);
     }
 
     if (newRPath.size() <= rpathSize) {