[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-09-28 Thread Roundup Robot

Roundup Robot added the comment:

New changeset f6792f734fcc by Nick Coghlan in branch 'default':
Close #18596: Support address sanity checking in clang/GCC
http://hg.python.org/cpython/rev/f6792f734fcc

--
nosy: +python-dev
resolution:  - fixed
stage: patch review - committed/rejected
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-09-28 Thread Nick Coghlan

Nick Coghlan added the comment:

Incorporated, but as Charles-François noted, a buildbot running with it enabled 
would be nice.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-09-25 Thread halfie

halfie added the comment:

I am attaching the latest tested patch against tip.

--
Added file: http://bugs.python.org/file31866/ASAN-compat-35da5d848ffd-v3.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-09-24 Thread Nick Coghlan

Changes by Nick Coghlan ncogh...@gmail.com:


--
nosy: +ncoghlan

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-07-31 Thread halfie

halfie added the comment:

Using,

# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS 
__attribute__((no_address_safety_analysis)) __attribute__ ((noinline))

instead of,

# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS 
__attribute__((no_address_safety_analysis))

seems to be a more future-proof (against inlining) solution.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-07-30 Thread halfie

New submission from halfie:

Hi,

When trying to build CPython tip with AddressSanitizer enabled, I get the 
following crash,

make Parser/pgen
make[1]: Entering directory `/scratch/repos/cpython'
make[1]: `Parser/pgen' is up to date.
make[1]: Leaving directory `/scratch/repos/cpython'
Parser/pgen ./Grammar/Grammar Include/graminit.h Python/graminit.c
=
==1375== ERROR: AddressSanitizer: heap-buffer-overflow on address 
0x6038f020 at pc 0x40b260 bp 0x7fff6e6cbbf0 sp 0x7fff6e6cbbe8
READ of size 4 at 0x6038f020 thread T0
#0 0x40b25f in _PyObject_Realloc 
/scratch/repos/cpython/Objects/obmalloc.c:1551
#1 0x403048 in PyNode_AddChild /scratch/repos/cpython/Parser/node.c:98
#2 0x4037fe in push /scratch/repos/cpython/Parser/parser.c:126
#3 0x4121bd in parsetok /scratch/repos/cpython/Parser/parsetok.c:211
#4 0x413344 in PyParser_ParseFileFlags 
/scratch/repos/cpython/Parser/parsetok.c:86
#5 0x413422 in getgrammar /scratch/repos/cpython/Parser/pgenmain.c:92
#6 0x401860 in main /scratch/repos/cpython/Parser/pgenmain.c:55
#7 0x3cb2221b74 in ?? ??:0
#8 0x401994 in _start ??:?
0x6038f020 is located 96 bytes to the left of 0-byte region 
[0x6038f080,0x6038f080)
==1375== AddressSanitizer CHECK failed: 
../../../../libsanitizer/asan/asan_allocator2.cc:216 ((id)) != (0) (0x0, 0x0)
#0 0x3ab681237d in ?? ??:0
#1 0x3ab68191b3 in ?? ??:0
#2 0x3ab680563b in ?? ??:0
#3 0x3ab6816e8f in ?? ??:0
#4 0x3ab6817ff1 in ?? ??:0
#5 0x3ab6812763 in ?? ??:0
#6 0x40b25f in _PyObject_Realloc 
/scratch/repos/cpython/Objects/obmalloc.c:1551
#7 0x403048 in PyNode_AddChild /scratch/repos/cpython/Parser/node.c:98
#8 0x4037fe in push /scratch/repos/cpython/Parser/parser.c:126
#9 0x4121bd in parsetok /scratch/repos/cpython/Parser/parsetok.c:211
#10 0x413344 in PyParser_ParseFileFlags 
/scratch/repos/cpython/Parser/parsetok.c:86
#11 0x413422 in getgrammar /scratch/repos/cpython/Parser/pgenmain.c:92
#12 0x401860 in main /scratch/repos/cpython/Parser/pgenmain.c:55
#13 0x3cb2221b74 in ?? ??:0
#14 0x401994 in _start ??:?
make: *** [Include/graminit.h] Error 1

...

AddressSanitizer is a fast memory error detector. See 
http://clang.llvm.org/docs/AddressSanitizer.html for details.


Build options used
==

export CFLAGS=-fsanitize=address -g

export LDFLAGS=-fsanitize=address

./configure --prefix=/opt/python --with-valgrind


Software Versions
==

$ hg log

changeset:   84902:6e1dd1ce95b8
branch:  2.7
tag: tip
parent:  84893:1dbcb0299088
user:Terry Jan Reedy tjre...@udel.edu
date:Tue Jul 30 01:37:36 2013 -0400
summary: Make all idle test case names end with 'Test'.

$ gcc --version
gcc (GCC) 4.8.1 20130603 (Red Hat 4.8.1-1)

$ cat /etc/redhat-release 
Fedora release 19 (Schrödinger’s Cat)

Fix / Work-around
=

See 
http://code.google.com/p/address-sanitizer/wiki/AddressSanitizer#Turning_off_instrumentation

Turning off the instrumentation for _PyObject_Free and  _PyObject_Realloc is 
required.

Advantages
==

AddressSanitizer can *now* be used to test and debug CPython.

AddressSanitizer has helped me find a large number of bugs in other softwares.

--
components: Interpreter Core
files: enable-ASAN-in-CPython.diff
keywords: patch
messages: 193917
nosy: halfie
priority: normal
severity: normal
status: open
title: enable usage of AddressSanitizer in CPython [PATCH]
type: crash
versions: Python 3.4
Added file: http://bugs.python.org/file31083/enable-ASAN-in-CPython.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-07-30 Thread Antoine Pitrou

Changes by Antoine Pitrou pit...@free.fr:


--
nosy: +christian.heimes, haypo
stage:  - patch review
type: crash - enhancement

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-07-30 Thread halfie

halfie added the comment:

This patch should only be applied if we are sure that the allocator is fine and 
doing such things by design.

--
type: enhancement - crash

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-07-30 Thread Christian Heimes

Changes by Christian Heimes li...@cheimes.de:


--
type: crash - enhancement

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18596] enable usage of AddressSanitizer in CPython [PATCH]

2013-07-30 Thread Charles-François Natali

Charles-François Natali added the comment:

The warning is due to the Py_ADDRESS_IN_RANGE() macro: it's a know limitation, 
we have the same problem with valgrind.

This would be a nice neature. It would IMO be even nicer to have an 
ASAN-enabled buildbot.

--
nosy: +neologix

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18596
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com