[v2,2/2] ldconfig: Ignore all GDB extension files

Message ID 20240506171633.30008-3-ats@offog.org
State New
Headers
Series ldconfig: Ignore all GDB extension files |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch success Patch applied to master at the time it was sent
redhat-pt-bot/TryBot-32bit success Build for i686
linaro-tcwg-bot/tcwg_glibc_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_glibc_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 success Testing passed

Commit Message

Adam Sampson May 6, 2024, 5:16 p.m. UTC
  ldconfig already ignores files with the -gdb.py suffix, but GDB also
looks for -gdb.gdb and -gdb.scm files. These aren't as widely used, but
libguile at least comes with a -gdb.scm file.

Rename is_gdb_python_file to is_gdb_extension_file, and make it
recognise all three types of GDB extension.

Signed-off-by: Adam Sampson <ats@offog.org>
---
 elf/readlib.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
  

Patch

diff --git a/elf/readlib.c b/elf/readlib.c
index 32e8b8eb22..f3129c4557 100644
--- a/elf/readlib.c
+++ b/elf/readlib.c
@@ -44,12 +44,14 @@  struct known_names
   int flag;
 };
 
-/* Check if string corresponds to a GDB Python file.  */
+/* Check if string corresponds to a GDB extension file.  */
 static bool
-is_gdb_python_file (const char *name)
+is_gdb_extension_file (const char *name)
 {
   size_t len = strlen (name);
-  return endswithn (name, len, "-gdb.py");
+  return (endswithn (name, len, "-gdb.gdb")
+	  || endswithn (name, len, "-gdb.py")
+	  || endswithn (name, len, "-gdb.scm"));
 }
 
 /* Returns 0 if everything is ok, != 0 in case of error.  */
@@ -146,7 +148,7 @@  process_file (const char *real_file_name, const char *file_name,
       size_t len = MIN (statbuf.st_size, 512);
       if (memmem (file_contents, len, "GROUP", 5) == NULL
 	  && memmem (file_contents, len, "GNU ld script", 13) == NULL
-	  && !is_gdb_python_file (file_name))
+	  && !is_gdb_extension_file (file_name))
 	error (0, 0, _("%s is not an ELF file - it has the wrong magic bytes at the start.\n"),
 	       file_name);
       ret = 1;