Package: glibc / 2.41-10

arm/unsubmitted-ldso-multilib.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
22
23
24
---
 elf/dl-load.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1706,6 +1706,17 @@
 	      __set_errno (ENOENT);
 	      return -1;
 	    }
+#ifdef __arm__
+          else if (!VALID_FLOAT_ABI (ehdr->e_flags))
+	    {
+	      /* This is not a fatal error.  On architectures where
+		 soft-float and hard-float binaries can be run this
+		 might happen.  */
+	      __close_nocancel (fd);
+	      __set_errno (ENOENT);
+	      return -1;
+	    }
+#endif
 	  else if (ehdr->e_ident[EI_DATA] != byteorder)
 	    {
 	      if (BYTE_ORDER == BIG_ENDIAN)