Package: glibc / 2.41-10

any/unsubmitted-ldso-machine-mismatch.diff Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
---
 elf/dl-load.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1717,6 +1717,14 @@
 	      return -1;
 	    }
 #endif
+	  else if (! __builtin_expect (elf_machine_matches_host (ehdr), 1))
+	    {
+	      /* Another non-fatal error, let's skip right past the
+	         the libraries obviously built for other machines.  */
+	      __close_nocancel (fd);
+	      __set_errno (ENOENT);
+	      return -1;
+	    }
 	  else if (ehdr->e_ident[EI_DATA] != byteorder)
 	    {
 	      if (BYTE_ORDER == BIG_ENDIAN)