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

Filipe Cabecinhas via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 27 14:59:07 PDT 2015


Thank you!

  Filipe

  F

On Thu, Aug 27, 2015 at 2:44 PM, Reid Kleckner <rnk at google.com> wrote:

> Made it a unit test in r246171. Thanks for reminding me those exist in
> sanitizer_common. :)
>
> On Thu, Aug 27, 2015 at 10:26 AM, Filipe Cabecinhas <filcab at gmail.com>
> wrote:
>
>> How about checking that we deal correctly with the \r in unit tests? That
>> way we can avoid all this trouble.
>> IIRC, GnuWin32 is made of packages and the user installs what they want,
>> no?
>>
>> Thanks,
>>
>>   Filipe
>>
>>
>> On Thursday, August 27, 2015, 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
>>>>
>>>>
>>>
>>
>> --
>>   F
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150827/a616b91f/attachment-0001.html>


More information about the llvm-commits mailing list