Fix -fsanitize=address on unreadable inferior strings
authorJan Kratochvil <jan.kratochvil@redhat.com>
Tue, 19 Aug 2014 20:55:10 +0000 (22:55 +0200)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Tue, 19 Aug 2014 20:55:10 +0000 (22:55 +0200)
commit6694c4110a37bc951d01132d6e56445d57350627
tree817a90a208ffc14ea5b6893334e6b12ffa658600
parent0718a8da7b359f184e1b3a866645cc2f9611771b
Fix -fsanitize=address on unreadable inferior strings

echo 'void f(char *s){}main(){f((char *)1);}'|gcc -g -x c -;../gdb ./a.out -ex 'b f' -ex r
====ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000aaccf at pc 0x96eea7 bp 0x7fff75bdbc90 sp 0x7fff75bdbc80
READ of size 1 at 0x6020000aaccf thread T0
    #0 0x96eea6 in extract_unsigned_integer .../gdb/findvar.c:108
    #1 0x9df02b in val_print_string .../gdb/valprint.c:2513
[...]
0x6020000aaccf is located 1 bytes to the left of 8-byte region [0x6020000aacd0,0x6020000aacd8)
allocated by thread T0 here:
    #0 0x7f45fad26b97 in malloc (/lib64/libasan.so.1+0x57b97)
    #1 0xdb3409 in xmalloc common/common-utils.c:45
    #2 0x9d8cf9 in read_string .../gdb/valprint.c:1845
    #3 0x9defca in val_print_string .../gdb/valprint.c:2502
[..]
====ABORTING

gdb/
2014-08-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

Fix -fsanitize=address on unreadable inferior strings.
* valprint.c (val_print_string): Fix access before BUFFER.
gdb/ChangeLog
gdb/valprint.c