This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.25-541-gdaa9bdb


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  daa9bdb607e962726cc733c9b82c01bd68765736 (commit)
      from  e9177fba13549a8e2a6232f46080e5c6d3e467b1 (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=daa9bdb607e962726cc733c9b82c01bd68765736

commit daa9bdb607e962726cc733c9b82c01bd68765736
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jun 5 09:13:49 2017 -0300

    posix: Add invalid flags test for p{write,read}v2
    
    This patch add an extra test for passing invalid flags and check its
    expected failure.  It shows an invalid LO_HI_LONG macro definition for
    x86_64 with leads to passing invalid flags on some configurations.
    
    The new tests fails on i686-linux-gnu and potentially on other 32 bits
    architecture that uses the compat syscall definition due a kernel bug.
    It is intended to be fixed upstream.
    
    Checked on x86_64-linux-gnu
    
    	* misc/tst-preadvwritev2-common.c: New file.
    	* misc/tst-preadvwritev2.c (do_test): Add test for invalid flag.
    	* misc/tst-preadvwritev64v2.c (do_test): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 7371bcb..3c9d6ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-06-21  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* misc/tst-preadvwritev2-common.c: New file.
+	* misc/tst-preadvwritev2.c (do_test): Add test for invalid flag.
+	* misc/tst-preadvwritev64v2.c (do_test): Likewise.
+
 2017-06-21  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
 	* sysdeps/aarch64/dl-machine.h (RTLD_START_1): Change _dl_argv to the
diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c
new file mode 100644
index 0000000..4c53d56
--- /dev/null
+++ b/misc/tst-preadvwritev2-common.c
@@ -0,0 +1,48 @@
+/* Common function for preadv2 and pwritev2 tests.
+   Copyright (C) 2017 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 <support/check.h>
+
+static void
+do_test_with_invalid_flags (void)
+{
+  int invalid_flag = 0x1;
+#ifdef RWF_HIPRI
+  invalid_flag <<= 1;
+#endif
+#ifdef RWF_DSYNC
+  invalid_flag <<= 1;
+#endif
+#ifdef RWF_SYNC
+  invalid_flag <<= 1;
+#endif
+
+  char buf[32];
+  const struct iovec vec = { .iov_base = buf, .iov_len = sizeof (buf) };
+  if (preadv2 (temp_fd, &vec, 1, 0, invalid_flag) != -1)
+    FAIL_EXIT1 ("preadv2 did not fail with an invalid flag");
+  if (errno != ENOTSUP)
+    FAIL_EXIT1 ("preadv2 failure did not set errno to ENOTSUP (%d)", errno);
+
+  /* This might fail for compat syscall (32 bits running on 64 bits kernel)
+     due a kernel issue.  */
+  if (pwritev2 (temp_fd, &vec, 1, 0, invalid_flag) != -1)
+    FAIL_EXIT1 ("pwritev2 did not fail with an invalid flag");
+  if (errno != ENOTSUP)
+    FAIL_EXIT1 ("pwritev2 failure did not set errno to ENOTSUP (%d)", errno);
+}
diff --git a/misc/tst-preadvwritev2.c b/misc/tst-preadvwritev2.c
index cf36272..682c757 100644
--- a/misc/tst-preadvwritev2.c
+++ b/misc/tst-preadvwritev2.c
@@ -23,9 +23,12 @@
   pwritev2 (__fd, __iov, __iovcnt, __offset, 0)
 
 #include "tst-preadvwritev-common.c"
+#include "tst-preadvwritev2-common.c"
 
 static int
 do_test (void)
 {
+  do_test_with_invalid_flags ();
+
   return do_test_with_offset (0);
 }
diff --git a/misc/tst-preadvwritev64v2.c b/misc/tst-preadvwritev64v2.c
index 8d0c48e..9ddc762 100644
--- a/misc/tst-preadvwritev64v2.c
+++ b/misc/tst-preadvwritev64v2.c
@@ -25,9 +25,12 @@
   pwritev2 (__fd, __iov, __iovcnt, __offset, 0)
 
 #include "tst-preadvwritev-common.c"
+#include "tst-preadvwritev2-common.c"
 
 static int
 do_test (void)
 {
+  do_test_with_invalid_flags ();
+
   return do_test_with_offset (0);
 }

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

Summary of changes:
 ChangeLog                       |    6 +++++
 misc/tst-preadvwritev2-common.c |   48 +++++++++++++++++++++++++++++++++++++++
 misc/tst-preadvwritev2.c        |    3 ++
 misc/tst-preadvwritev64v2.c     |    3 ++
 4 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 misc/tst-preadvwritev2-common.c


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]