GNU C Library master sources branch master updated. glibc-2.28.9000-313-gc089fd8

hjl@sourceware.org hjl@sourceware.org
Fri Nov 23 15:55:00 GMT 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  c089fd80c793b1a987e1a6e9a08248b0861ec7ed (commit)
      from  95edd05c75af2208c62174d135d76b897969a9af (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c089fd80c793b1a987e1a6e9a08248b0861ec7ed

commit c089fd80c793b1a987e1a6e9a08248b0861ec7ed
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Nov 23 07:30:56 2018 -0800

    x86/CET: Add a re-exec test with legacy bitmap
    
    Add a re-exec test with legacy bitmap to verify that legacy bitmap is
    properly hanlded by kernel.
    
    	* sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1a.
    	(tst-cet-legacy-1a-ARGS): New.
    	($(objpfx)tst-cet-legacy-1a): New target.
    	* sysdeps/x86/tst-cet-legacy-1a.c: New file.

diff --git a/ChangeLog b/ChangeLog
index 29f649e..ce7a55f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2018-11-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1a.
+	(tst-cet-legacy-1a-ARGS): New.
+	($(objpfx)tst-cet-legacy-1a): New target.
+	* sysdeps/x86/tst-cet-legacy-1a.c: New file.
+
 2018-11-22  Joseph Myers  <joseph@codesourcery.com>
 
 	* conform/conformtest.py (CompileSubTest.__init__): Set
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
index f2fd031..7ec46ca 100644
--- a/sysdeps/x86/Makefile
+++ b/sysdeps/x86/Makefile
@@ -18,8 +18,9 @@ ifeq ($(enable-cet),yes)
 ifeq ($(subdir),elf)
 sysdep-dl-routines += dl-cet
 
-tests += tst-cet-legacy-1 tst-cet-legacy-2 tst-cet-legacy-2a \
-	 tst-cet-legacy-3 tst-cet-legacy-4
+tests += tst-cet-legacy-1 tst-cet-legacy-1a tst-cet-legacy-2 \
+	 tst-cet-legacy-2a tst-cet-legacy-3 tst-cet-legacy-4
+tst-cet-legacy-1a-ARGS = -- $(host-test-program-cmd)
 ifneq (no,$(have-tunables))
 tests += tst-cet-legacy-4a tst-cet-legacy-4b tst-cet-legacy-4c
 endif
@@ -38,6 +39,8 @@ CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none
 
 $(objpfx)tst-cet-legacy-1: $(objpfx)tst-cet-legacy-mod-1.so \
 		       $(objpfx)tst-cet-legacy-mod-2.so
+$(objpfx)tst-cet-legacy-1a: $(objpfx)tst-cet-legacy-mod-1.so \
+		       $(objpfx)tst-cet-legacy-mod-2.so
 $(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
 $(objpfx)tst-cet-legacy-2.out: $(objpfx)tst-cet-legacy-mod-1.so
 $(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
diff --git a/sysdeps/x86/tst-cet-legacy-1a.c b/sysdeps/x86/tst-cet-legacy-1a.c
new file mode 100644
index 0000000..8fde296
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-1a.c
@@ -0,0 +1,81 @@
+/* Test for re-exec with legacy bitmap.
+   Copyright (C) 2018 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <support/check.h>
+
+/* Nonzero if the program gets called via `exec'.  */
+static int restart;
+
+#define CMDLINE_OPTIONS \
+  { "restart", no_argument, &restart, 1 },
+
+extern int do_test (int argc, char *argv[]);
+
+extern int in_dso_1 (void);
+extern int in_dso_2 (void);
+
+static int
+check (void)
+{
+  if (in_dso_1 () != 0x1234678)
+    {
+      puts ("in_dso_1 () != 0x1234678");
+      exit (1);
+    }
+
+  if (in_dso_2 () != 0xbadbeef)
+    {
+      puts ("in_dso_2 () != 0xbadbeef");
+      exit (1);
+    }
+
+  return 0;
+}
+
+int
+do_test (int argc, char *argv[])
+{
+  /* We must have
+     - one or four parameters left if called initially
+       + path for ld.so		optional
+       + "--library-path"	optional
+       + the library path	optional
+       + the application name
+  */
+
+  if (restart)
+    return check ();
+
+  if (argc != 2 && argc != 5)
+    FAIL_EXIT1 ("wrong number of arguments (%d)", argc);
+
+  if (argc == 5)
+    execl (argv[1], argv[1], argv[2], argv[3], argv[4], "--direct",
+	   "--restart",  NULL);
+  else
+    execl (argv[1], argv[1], "--direct", "--restart",  NULL);
+
+  return -1;
+}
+
+#define TEST_FUNCTION_ARGV do_test
+#include <support/test-driver.c>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |    7 ++
 sysdeps/x86/Makefile                               |    7 ++-
 .../{tst-cet-legacy-2.c => tst-cet-legacy-1a.c}    |   69 ++++++++++++-------
 3 files changed, 55 insertions(+), 28 deletions(-)
 copy sysdeps/x86/{tst-cet-legacy-2.c => tst-cet-legacy-1a.c} (52%)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list