Blame SOURCES/file-5.33-static-PIE-binaries-3.patch
|
|
d2ca5d |
From 27c951adbd5d7ebe95f08c18257ea031bdd59ee1 Mon Sep 17 00:00:00 2001
|
|
|
d2ca5d |
From: Vincent Mihalkovic <vmihalko@redhat.com>
|
|
|
d2ca5d |
Date: Mon, 6 Feb 2023 15:00:16 +0100
|
|
|
d2ca5d |
Subject: [PATCH] For dynamic binaries let the df_1 pie flag determine if we
|
|
|
d2ca5d |
are pie or a shared object, and ignore the mode bits.
|
|
|
d2ca5d |
|
|
|
d2ca5d |
upstream commit: 03084b161cf888b5286dbbcd964c31ccad4f64d9
|
|
|
d2ca5d |
---
|
|
|
d2ca5d |
src/readelf.c | 4 +++-
|
|
|
d2ca5d |
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
d2ca5d |
|
|
|
d2ca5d |
diff --git a/src/readelf.c b/src/readelf.c
|
|
|
d2ca5d |
index 94cdaca..9c75c0a 100644
|
|
|
d2ca5d |
--- a/src/readelf.c
|
|
|
d2ca5d |
+++ b/src/readelf.c
|
|
|
d2ca5d |
@@ -1058,7 +1058,7 @@ dodynamic(struct magic_set *ms, void *vbuf, size_t offset, size_t size,
|
|
|
d2ca5d |
|
|
|
d2ca5d |
switch (xdh_tag) {
|
|
|
d2ca5d |
case DT_FLAGS_1:
|
|
|
d2ca5d |
- if (xdh_val == DF_1_PIE)
|
|
|
d2ca5d |
+ if (xdh_val & DF_1_PIE)
|
|
|
d2ca5d |
ms->mode |= 0111;
|
|
|
d2ca5d |
else
|
|
|
d2ca5d |
ms->mode &= ~0111;
|
|
|
d2ca5d |
@@ -1611,6 +1611,8 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
|
|
|
d2ca5d |
switch (xph_type) {
|
|
|
d2ca5d |
case PT_DYNAMIC:
|
|
|
d2ca5d |
offset = 0;
|
|
|
d2ca5d |
+ // Let DF_1 determine if we are PIE or not.
|
|
|
d2ca5d |
+ ms->mode &= ~0111;
|
|
|
d2ca5d |
for (;;) {
|
|
|
d2ca5d |
if (offset >= (size_t)bufsize)
|
|
|
d2ca5d |
break;
|
|
|
d2ca5d |
--
|
|
|
d2ca5d |
2.39.1
|
|
|
d2ca5d |
|