Skip the _dl_msyscall() invocation if tracing library loading.
authorguenther <guenther@openbsd.org>
Tue, 15 Aug 2023 06:23:31 +0000 (06:23 +0000)
committerguenther <guenther@openbsd.org>
Tue, 15 Aug 2023 06:23:31 +0000 (06:23 +0000)
Problem noted by gnezdo@
ok millert@

libexec/ld.so/library.c
libexec/ld.so/library_mquery.c

index 8e2f44c..34bf47c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: library.c,v 1.91 2023/07/12 19:49:06 jasper Exp $ */
+/*     $OpenBSD: library.c,v 1.92 2023/08/15 06:23:31 guenther Exp $ */
 
 /*
  * Copyright (c) 2002 Dale Rahn
@@ -345,7 +345,7 @@ _dl_tryload_shlib(const char *libname, int type, int flags, int nodelete)
                        _dl_set_tls(object, ptls, libaddr, libname);
 
                /* Request permission for system calls in libc.so's text segment */
-               if (soname != NULL &&
+               if (soname != NULL && !_dl_traceld &&
                    _dl_strncmp(soname, "libc.so.", 8) == 0) {
                        if (_dl_msyscall(exec_start, exec_size) == -1)
                                _dl_printf("msyscall %lx %lx error\n",
index 5777538..5f7aeb2 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: library_mquery.c,v 1.71 2023/07/12 19:49:06 jasper Exp $ */
+/*     $OpenBSD: library_mquery.c,v 1.72 2023/08/15 06:23:31 guenther Exp $ */
 
 /*
  * Copyright (c) 2002 Dale Rahn
@@ -354,7 +354,7 @@ retry:
                            libname);
 
                /* Request permission for system calls in libc.so's text segment */
-               if (soname != NULL &&
+               if (soname != NULL && !_dl_traceld &&
                    _dl_strncmp(soname, "libc.so.", 8) == 0) {
                        if (_dl_msyscall(exec_start, exec_size) == -1)
                                _dl_printf("msyscall %lx %lx error\n",