<div dir="ltr">r374115</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 8, 2019 at 12:29 PM Azhar Mohammed via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">This is failing on Darwin, can you please take a look. <a href="http://green.lab.llvm.org/green/job/clang-stage1-RA/2649/consoleFull" target="_blank">http://green.lab.llvm.org/green/job/clang-stage1-RA/2649/consoleFull</a><div><div><br></div><div><div><br></div><div><span title="Regression test failed" style="box-sizing:border-box;font-family:monospace;font-size:15px;white-space:pre-wrap;color:white;background-color:red">******************** TEST 'SanitizerCommon-asan-x86_64-Darwin :: Posix/crypt.cpp' FAILED ********************
</span><span style="color:rgb(51,51,51);font-family:monospace;font-size:15px;white-space:pre-wrap">Script:
--
: 'RUN: at line 1';      /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/./bin/clang  --driver-mode=g++ -gline-tables-only -fsanitize=address  -arch x86_64 -stdlib=libc++ -mmacosx-version-min=10.9 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk  -O0 -g /Users/buildslave/jenkins/workspace/clang-stage1-RA/llvm-project/compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp -o /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/tools/clang/runtime/compiler-rt-bins/test/sanitizer_common/asan-x86_64-Darwin/Posix/Output/crypt.cpp.tmp -lcrypt &&  /Users/buildslave/jenkins/workspace/clang-stage1-RA/clang-build/tools/clang/runtime/compiler-rt-bins/test/sanitizer_common/asan-x86_64-Darwin/Posix/Output/crypt.cpp.tmp
--
Exit Code: 1</span></div><div><font color="#333333" face="monospace"><span style="font-size:15px;white-space:pre-wrap"><br></span></font><div style="box-sizing:border-box;color:rgb(51,51,51);font-family:monospace;font-size:15px;white-space:pre-wrap"><div style="box-sizing:border-box;border-bottom:1px solid lightgray;border-left:1px solid lightgray;border-top-width:1px;border-right-width:1px;padding-left:2px">Command Output (stderr):
--
<a id="gmail-m_62238224375117087581590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><a id="gmail-m_62238224375117087581590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><a id="gmail-m_62238224375117087581590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><a id="gmail-m_62238224375117087581590979434dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><span title="Link error
Link error
Link error
Link error" style="box-sizing:border-box;color:white;background-color:red">ld: library not found for -lcrypt
</span><a id="gmail-m_6223822437511708758124632184549ba4694-19c4-4d7e-bec5-911270d8a58c" style="box-sizing:border-box;display:block"></a><a id="gmail-m_62238224375117087581246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><a id="gmail-m_62238224375117087581246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><a id="gmail-m_62238224375117087581246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><a id="gmail-m_62238224375117087581246321845dd1929ea-7054-4089-b7ef-4624c3781fa4" style="box-sizing:border-box;display:block"></a><span title="Compile Error
Link error
Link error
Link error
Link error" style="box-sizing:border-box;color:white;background-color:red">clang-10: error: linker command failed with exit code 1 (use -v to see invocation)</span></div></div><div><div><br></div><div><br></div><div><br><blockquote type="cite"><div>On Oct 7, 2019, at 5:00 PM, Evgeniy Stepanov via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:</div><br><div><div>Author: eugenis<br>Date: Mon Oct  7 17:00:30 2019<br>New Revision: 373993<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=373993&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=373993&view=rev</a><br>Log:<br>[msan] Add interceptors: crypt, crypt_r.<br><br>Reviewers: vitalybuka<br><br>Subscribers: srhines, #sanitizers, llvm-commits<br><br>Tags: #sanitizers, #llvm<br><br>Differential Revision: <a href="https://reviews.llvm.org/D68431" target="_blank">https://reviews.llvm.org/D68431</a><br><br>Added:<br>    compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp<br>    compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp<br>Modified:<br>    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc<br>    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h<br>    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp<br>    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br><br>Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc<br>URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc?rev=373993&r1=373992&r2=373993&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc?rev=373993&r1=373992&r2=373993&view=diff</a><br>==============================================================================<br>--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc (original)<br>+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc Mon Oct  7 17:00:30 2019<br>@@ -9573,6 +9573,41 @@ INTERCEPTOR(SSIZE_T, getrandom, void *bu<br> #define INIT_GETRANDOM<br> #endif<br><br>+#if SANITIZER_INTERCEPT_CRYPT<br>+INTERCEPTOR(char *, crypt, char *key, char *salt) {<br>+  void *ctx;<br>+  COMMON_INTERCEPTOR_ENTER(ctx, crypt, key, salt);<br>+  COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);<br>+  COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);<br>+  char *res = REAL(crypt)(key, salt);<br>+  if (res != nullptr)<br>+    COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);<br>+  return res;<br>+}<br>+#define INIT_CRYPT COMMON_INTERCEPT_FUNCTION(crypt);<br>+#else<br>+#define INIT_CRYPT<br>+#endif<br>+<br>+#if SANITIZER_INTERCEPT_CRYPT_R<br>+INTERCEPTOR(char *, crypt_r, char *key, char *salt, void *data) {<br>+  void *ctx;<br>+  COMMON_INTERCEPTOR_ENTER(ctx, crypt_r, key, salt, data);<br>+  COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);<br>+  COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);<br>+  char *res = REAL(crypt_r)(key, salt, data);<br>+  if (res != nullptr) {<br>+    COMMON_INTERCEPTOR_WRITE_RANGE(ctx, data,<br>+                                   __sanitizer::struct_crypt_data_sz);<br>+    COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);<br>+  }<br>+  return res;<br>+}<br>+#define INIT_CRYPT_R COMMON_INTERCEPT_FUNCTION(crypt_r);<br>+#else<br>+#define INIT_CRYPT_R<br>+#endif<br>+<br> static void InitializeCommonInterceptors() {<br> #if SI_POSIX<br>   static u64 metadata_mem[sizeof(MetadataHashMap) / sizeof(u64) + 1];<br>@@ -9871,6 +9906,8 @@ static void InitializeCommonInterceptors<br>   INIT_GETUSERSHELL;<br>   INIT_SL_INIT;<br>   INIT_GETRANDOM;<br>+  INIT_CRYPT;<br>+  INIT_CRYPT_R;<br><br>   INIT___PRINTF_CHK;<br> }<br><br>Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=373993&r1=373992&r2=373993&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=373993&r1=373992&r2=373993&view=diff</a><br>==============================================================================<br>--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h (original)<br>+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h Mon Oct  7 17:00:30 2019<br>@@ -566,6 +566,8 @@<br> #define SANITIZER_INTERCEPT_FDEVNAME SI_FREEBSD<br> #define SANITIZER_INTERCEPT_GETUSERSHELL (SI_POSIX && !SI_ANDROID)<br> #define SANITIZER_INTERCEPT_SL_INIT (SI_FREEBSD || SI_NETBSD)<br>+#define SANITIZER_INTERCEPT_CRYPT (SI_POSIX && !SI_ANDROID)<br>+#define SANITIZER_INTERCEPT_CRYPT_R (SI_LINUX && !SI_ANDROID)<br><br> #define SANITIZER_INTERCEPT_GETRANDOM (SI_LINUX && __GLIBC_PREREQ(2, 25))<br> #define SANITIZER_INTERCEPT___CXA_ATEXIT SI_NETBSD<br><br>Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp?rev=373993&r1=373992&r2=373993&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp?rev=373993&r1=373992&r2=373993&view=diff</a><br>==============================================================================<br>--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp (original)<br>+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp Mon Oct  7 17:00:30 2019<br>@@ -140,6 +140,7 @@ typedef struct user_fpregs elf_fpregset_<br> #include <linux/serial.h><br> #include <sys/msg.h><br> #include <sys/ipc.h><br>+#include <crypt.h><br> #endif // SANITIZER_LINUX && !SANITIZER_ANDROID<br><br> #if SANITIZER_ANDROID<br>@@ -240,6 +241,7 @@ namespace __sanitizer {<br>   unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;<br>   unsigned struct_rlimit64_sz = sizeof(struct rlimit64);<br>   unsigned struct_statvfs64_sz = sizeof(struct statvfs64);<br>+  unsigned struct_crypt_data_sz = sizeof(struct crypt_data);<br> #endif // SANITIZER_LINUX && !SANITIZER_ANDROID<br><br> #if SANITIZER_LINUX && !SANITIZER_ANDROID<br><br>Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=373993&r1=373992&r2=373993&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=373993&r1=373992&r2=373993&view=diff</a><br>==============================================================================<br>--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h (original)<br>+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h Mon Oct  7 17:00:30 2019<br>@@ -304,6 +304,7 @@ extern unsigned struct_msqid_ds_sz;<br> extern unsigned struct_mq_attr_sz;<br> extern unsigned struct_timex_sz;<br> extern unsigned struct_statvfs_sz;<br>+extern unsigned struct_crypt_data_sz;<br> #endif  // SANITIZER_LINUX && !SANITIZER_ANDROID<br><br> struct __sanitizer_iovec {<br><br>Added: compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp?rev=373993&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp?rev=373993&view=auto</a><br>==============================================================================<br>--- compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp (added)<br>+++ compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/crypt_r.cpp Mon Oct  7 17:00:30 2019<br>@@ -0,0 +1,37 @@<br>+// RUN: %clangxx -O0 -g %s -lcrypt -o %t && %run %t<br>+<br>+#include <assert.h><br>+#include <unistd.h><br>+#include <cstring><br>+#include <crypt.h><br>+<br>+#include <sanitizer/msan_interface.h><br>+<br>+int<br>+main (int argc, char** argv)<br>+{<br>+  {<br>+    crypt_data cd;<br>+    cd.initialized = 0;<br>+    char *p = crypt_r("abcdef", "xz", &cd);<br>+    volatile size_t z = strlen(p);<br>+  }<br>+  {<br>+    crypt_data cd;<br>+    cd.initialized = 0;<br>+    char *p = crypt_r("abcdef", "$1$", &cd);<br>+    volatile size_t z = strlen(p);<br>+  }<br>+  {<br>+    crypt_data cd;<br>+    cd.initialized = 0;<br>+    char *p = crypt_r("abcdef", "$5$", &cd);<br>+    volatile size_t z = strlen(p);<br>+  }<br>+  {<br>+    crypt_data cd;<br>+    cd.initialized = 0;<br>+    char *p = crypt_r("abcdef", "$6$", &cd);<br>+    volatile size_t z = strlen(p);<br>+  }<br>+}<br><br>Added: compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp?rev=373993&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp?rev=373993&view=auto</a><br>==============================================================================<br>--- compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp (added)<br>+++ compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/crypt.cpp Mon Oct  7 17:00:30 2019<br>@@ -0,0 +1,26 @@<br>+// RUN: %clangxx -O0 -g %s -o %t -lcrypt && %run %t<br>+<br>+#include <assert.h><br>+#include <unistd.h><br>+#include <cstring><br>+<br>+int<br>+main (int argc, char** argv)<br>+{<br>+  {<br>+    char *p = crypt("abcdef", "xz");<br>+    volatile size_t z = strlen(p);<br>+  }<br>+  {<br>+    char *p = crypt("abcdef", "$1$");<br>+    volatile size_t z = strlen(p);<br>+  }<br>+  {<br>+    char *p = crypt("abcdef", "$5$");<br>+    volatile size_t z = strlen(p);<br>+  }<br>+  {<br>+    char *p = crypt("abcdef", "$6$");<br>+    volatile size_t z = strlen(p);<br>+  }<br>+}<br><br><br>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br></div></div></blockquote></div><br></div></div></div></div></div>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>