[compiler-rt] r246096 - Handle suppression files ending in CRLF (\r\n)

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 27 10:22:59 PDT 2015


Hm, well, it failed on the sanitizer bot, so I went with the Python idea
in r246162.

On Thu, Aug 27, 2015 at 9:47 AM, Reid Kleckner <rnk at google.com> wrote:

> unix2dos was in my gnuwin32 installation, so I figured it's fine.
>
> On Wed, Aug 26, 2015 at 8:51 PM, Filipe Cabecinhas <filcab at gmail.com>
> wrote:
>
>> Yeah, that's true. I'm still not happy about adding additional
>> dependencies...
>> Python is a dependency, though. I guess a small Python one liner would
>> work.
>>
>>
>> On Wednesday, August 26, 2015, Sean Silva <chisophugis at gmail.com> wrote:
>>
>>>
>>>
>>> On Wed, Aug 26, 2015 at 8:26 PM, Filipe Cabecinhas via llvm-commits <
>>> llvm-commits at lists.llvm.org> wrote:
>>>
>>>> Please don't rely on unix2dos. Comitting a file with \r\n is much
>>>> better than adding dependencies like this.
>>>> I also don't think this test should be Windows only.
>>>>
>>>
>>> VCS are notorious for changing line endings in various ways. I don't
>>> think that unix2dos is a great solution, but it at least the failure mode
>>> is "blows up; program not found" instead of silently doing something else.
>>>
>>> -- Sean Silva
>>>
>>>
>>>
>>>>
>>>>
>>>> Thank you,
>>>>
>>>>   Filipe
>>>>
>>>>
>>>> On Wednesday, August 26, 2015, Reid Kleckner via llvm-commits <
>>>> llvm-commits at lists.llvm.org> wrote:
>>>>
>>>>> Author: rnk
>>>>> Date: Wed Aug 26 17:23:50 2015
>>>>> New Revision: 246096
>>>>>
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=246096&view=rev
>>>>> Log:
>>>>> Handle suppression files ending in CRLF (\r\n)
>>>>>
>>>>> The gnuwin32 version of 'echo' appears to produce such files, causing a
>>>>> test failure that only reproduced with gnuwin32.
>>>>>
>>>>> Added:
>>>>>     compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc
>>>>> Modified:
>>>>>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc
>>>>>
>>>>> Modified:
>>>>> compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc
>>>>> URL:
>>>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc?rev=246096&r1=246095&r2=246096&view=diff
>>>>>
>>>>> ==============================================================================
>>>>> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc
>>>>> (original)
>>>>> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc
>>>>> Wed Aug 26 17:23:50 2015
>>>>> @@ -112,7 +112,8 @@ void SuppressionContext::Parse(const cha
>>>>>        end = line + internal_strlen(line);
>>>>>      if (line != end && line[0] != '#') {
>>>>>        const char *end2 = end;
>>>>> -      while (line != end2 && (end2[-1] == ' ' || end2[-1] == '\t'))
>>>>> +      while (line != end2 &&
>>>>> +             (end2[-1] == ' ' || end2[-1] == '\t' || end2[-1] ==
>>>>> '\r'))
>>>>>          end2--;
>>>>>        int type;
>>>>>        for (type = 0; type < suppression_types_num_; type++) {
>>>>>
>>>>> Added:
>>>>> compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc
>>>>> URL:
>>>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc?rev=246096&view=auto
>>>>>
>>>>> ==============================================================================
>>>>> --- compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc
>>>>> (added)
>>>>> +++ compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc
>>>>> Wed Aug 26 17:23:50 2015
>>>>> @@ -0,0 +1,19 @@
>>>>> +// Try a strlen suppression, but force the input file to be DOS
>>>>> format (CRLF).
>>>>> +// RUN: %clangxx_asan -O0 %s -o %t
>>>>> +// RUN: echo "interceptor_name:strlen" > %t.supp
>>>>> +// RUN: unix2dos %t.supp
>>>>> +// RUN: %env_asan_opts=suppressions='"%t.supp"' %run %t 2>&1 |
>>>>> FileCheck %s
>>>>> +
>>>>> +#include <stdio.h>
>>>>> +#include <stdlib.h>
>>>>> +#include <string.h>
>>>>> +
>>>>> +int main() {
>>>>> +  char *a = (char *)malloc(6);
>>>>> +  free(a);
>>>>> +  size_t len = strlen(a); // BOOM
>>>>> +  fprintf(stderr, "strlen ignored, len = %zu\n", len);
>>>>> +}
>>>>> +
>>>>> +// CHECK-NOT: AddressSanitizer: heap-use-after-free
>>>>> +// CHECK: strlen ignored
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> llvm-commits mailing list
>>>>> llvm-commits at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>>
>>>>
>>>>
>>>> --
>>>>   F
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>
>>>>
>>>
>>
>> --
>>   F
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150827/d6c0c222/attachment.html>


More information about the llvm-commits mailing list