aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-03-08 15:52:03 +0100
committerMartin Liska <mliska@suse.cz>2021-03-08 15:55:27 +0100
commit81fee438512460f1be50d91ee5de452f8fe5cc18 (patch)
tree082b41dce09fd3160704746c74a491689536c1b8 /gcc
parent04b4828c6dd215385fde6964a5e13da8a01a78ba (diff)
downloadgcc-81fee438512460f1be50d91ee5de452f8fe5cc18.zip
gcc-81fee438512460f1be50d91ee5de452f8fe5cc18.tar.gz
gcc-81fee438512460f1be50d91ee5de452f8fe5cc18.tar.bz2
libsanitizer: cherry-pick ad294e572bc5c16f9dc420cc994322de6ca3fbfb
libsanitizer/ChangeLog: PR sanitizer/98920 * asan/asan_interceptors.cpp (COMMON_INTERCEPT_FUNCTION_VER): Cherry pick. (COMMON_INTERCEPT_FUNCTION_VER_UNVERSIONED_FALLBACK): Likewise. * asan/asan_interceptors.h (ASAN_INTERCEPT_FUNC_VER_UNVERSIONED_FALLBACK): Likewise. * sanitizer_common/sanitizer_common_interceptors.inc (COMMON_INTERCEPT_FUNCTION_GLIBC_VER_MIN): Likewise. (INIT_REGEX): Likewise. * tsan/tsan_interceptors_posix.cpp (COMMON_INTERCEPT_FUNCTION_VER_UNVERSIONED_FALLBACK): Likewise. gcc/testsuite/ChangeLog: PR sanitizer/98920 * c-c++-common/asan/pr98920.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/c-c++-common/asan/pr98920.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/c-c++-common/asan/pr98920.c b/gcc/testsuite/c-c++-common/asan/pr98920.c
new file mode 100644
index 0000000..881d3d4
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/asan/pr98920.c
@@ -0,0 +1,24 @@
+/* PR sanitizer/98920 */
+/* { dg-do run } */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <regex.h>
+
+int main(void)
+{
+ regex_t r;
+ const char s[] = "ban\0ana";
+ regmatch_t pmatch[10];
+ pmatch[0].rm_so = 0;
+ pmatch[0].rm_eo = sizeof(s);
+ if (regcomp(&r, "ana", 0))
+ return 2;
+ if (regexec(&r, s, sizeof(pmatch)/sizeof(pmatch[0]), pmatch, REG_STARTEND)) {
+ fprintf(stderr, "failed to match\n");
+ regfree(&r);
+ return 3;
+ }
+ regfree(&r);
+ return 0;
+}