зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 2 changesets (bug 1798865) for causing spidermonkey exceptions.
Backed out changeset e14f128a212e (bug 1798865) Backed out changeset 70a4325293f5 (bug 1798865)
This commit is contained in:
Родитель
8e6fe2de11
Коммит
4d88a72636
|
@ -1,5 +1,5 @@
|
|||
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp
|
||||
index 7ef499ce07b1..8fd682f943fe 100644
|
||||
index c3e08f58c2ce..b5c5b9e3e74a 100644
|
||||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_file.cpp
|
||||
@@ -21,6 +21,10 @@
|
||||
|
@ -13,41 +13,38 @@ index 7ef499ce07b1..8fd682f943fe 100644
|
|||
namespace __sanitizer {
|
||||
|
||||
void CatastrophicErrorWrite(const char *buffer, uptr length) {
|
||||
@@ -206,11 +210,35 @@ char *FindPathToBinary(const char *name) {
|
||||
return internal_strdup(name);
|
||||
@@ -222,6 +226,34 @@ char *FindPathToBinary(const char *name) {
|
||||
if (*end == '\0') break;
|
||||
beg = end + 1;
|
||||
}
|
||||
|
||||
+ uptr name_len = internal_strlen(name);
|
||||
+ InternalMmapVector<char> buffer(kMaxPathLength);
|
||||
+
|
||||
+#if SANITIZER_LINUX
|
||||
+ // If we cannot find the requested binary in PATH, we should try to locate
|
||||
+ // it next to the binary, in case it is shipped with the build itself
|
||||
+ // (e.g. llvm-symbolizer shipped with sanitizer build to symbolize on client.
|
||||
+ if (internal_readlink("/proc/self/exe", buffer.data(), kMaxPathLength) >= 0) {
|
||||
+ uptr buf_len = internal_strlen(buffer.data());
|
||||
+ if (internal_readlink("/proc/self/exe", buffer.data(), kMaxPathLength) < 0)
|
||||
+ return nullptr;
|
||||
+
|
||||
+ /* Avoid using dirname() here */
|
||||
+ while (buf_len > 0) {
|
||||
+ if (buffer[buf_len - 1] == '/')
|
||||
+ break;
|
||||
+ buf_len--;
|
||||
+ }
|
||||
+ uptr buf_len = internal_strlen(buffer.data());
|
||||
+
|
||||
+ if (buf_len && buf_len + name_len + 1 <= kMaxPathLength) {
|
||||
+ internal_memcpy(&buffer[buf_len], name, name_len);
|
||||
+ buffer[buf_len + name_len] = '\0';
|
||||
+ if (FileExists(buffer.data()))
|
||||
+ return internal_strdup(buffer.data());
|
||||
+ }
|
||||
+ /* Avoid using dirname() here */
|
||||
+ while (buf_len > 0) {
|
||||
+ if (buffer[buf_len - 1] == '/')
|
||||
+ break;
|
||||
+ buf_len--;
|
||||
+ }
|
||||
+
|
||||
+ if (!buf_len)
|
||||
+ return nullptr;
|
||||
+
|
||||
+ if (buf_len + name_len + 1 <= kMaxPathLength) {
|
||||
+ internal_memcpy(&buffer[buf_len], name, name_len);
|
||||
+ buffer[buf_len + name_len] = '\0';
|
||||
+ if (FileExists(buffer.data()))
|
||||
+ return internal_strdup(buffer.data());
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
const char *path = GetEnv("PATH");
|
||||
if (!path)
|
||||
return nullptr;
|
||||
- uptr name_len = internal_strlen(name);
|
||||
- InternalMmapVector<char> buffer(kMaxPathLength);
|
||||
const char *beg = path;
|
||||
while (true) {
|
||||
const char *end = internal_strchrnul(beg, kPathSeparator);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"env": {
|
||||
"JITTEST_EXTRA_ARGS": "--jitflags=interp --ignore-timeouts={DIR}/cgc-jittest-timeouts.txt",
|
||||
"JSTESTS_EXTRA_ARGS": "--jitflags=interp --exclude-file={DIR}/cgc-jstests-slow.txt",
|
||||
"MSAN_OPTIONS": "external_symbolizer_path={MOZ_FETCHES_DIR}/llvm-symbolizer/bin/llvm-symbolizer:log_path={OUTDIR}/sanitize_log"
|
||||
"MSAN_OPTIONS": "external_symbolizer_path={MOZ_FETCHES_DIR}/clang/bin/llvm-symbolizer:log_path={OUTDIR}/sanitize_log"
|
||||
},
|
||||
"ignore-test-failures": "true",
|
||||
"max-errors": 7,
|
||||
|
|
|
@ -31,7 +31,7 @@ if [ "$upload" = "1" ]; then
|
|||
|
||||
# Fuzzing users want the correct version of llvm-symbolizer available in the
|
||||
# same directory as the built output.
|
||||
for f in "$MOZ_FETCHES_DIR/llvm-symbolizer/bin/llvm-symbolizer"*; do
|
||||
for f in "$MOZ_FETCHES_DIR/clang/bin/llvm-symbolizer"*; do
|
||||
gzip -c "$f" > "$UPLOAD_DIR/llvm-symbolizer.gz" || echo "gzip $f failed" >&2
|
||||
break
|
||||
done
|
||||
|
|
Загрузка…
Ссылка в новой задаче