This is the mail archive of the
gdb-testers@sourceware.org
mailing list for the GDB project.
[binutils-gdb] [Ada] Buffer overflow in ada_unpack_from_contents
- From: sergiodj+buildbot at redhat dot com
- To: gdb-testers at sourceware dot org
- Date: Fri, 09 Oct 2015 18:31:37 -0400
- Subject: [binutils-gdb] [Ada] Buffer overflow in ada_unpack_from_contents
- Authentication-results: sourceware.org; auth=none
*** TEST RESULTS FOR COMMIT 0cafa88cc03786fb5794ca53e987e45fd09621f8 ***
Author: Joel Brobecker <brobecker@adacore.com>
Branch: master
Commit: 0cafa88cc03786fb5794ca53e987e45fd09621f8
[Ada] Buffer overflow in ada_unpack_from_contents
This patch fixes a buffer overflow in ada_unpack_from_contents
caused by one of the previous commits. This happens when trying
to print the value of an array of variant records.
The overflow happens while trying to print one element of the array.
Because the size of each element in the array is variable, the array
has a DWARF byte_stride attribute, which makes us treat the array
as if it was packed. And during the extraction of each array element,
we try to unpack an object using the array's byte stride as the size,
into an element whose size is actually less than the stride.
This patch fixes the issue by overriding the byte-stride with
the actual element's length.
gdb/ChangeLog:
* ada-lang.c (ada_value_primitive_packed_val): Move
src_len variable to local block where used. Override
BIT_SIZE if bigger than size of resolved type.
- Follow-Ups:
- Failures on RHEL-s390x-m64, branch master
- Failures on Debian-s390x-native-gdbserver-m64, branch master
- Failures on Debian-s390x-m64, branch master
- Failures on Debian-s390x-native-extended-gdbserver-m64, branch master
- Failures on AIX-POWER7-plain, branch master
- Failures on Fedora-x86_64-native-extended-gdbserver-m32, branch master
- Failures on Fedora-x86_64-native-extended-gdbserver-m64, branch master
- Failures on Fedora-x86_64-native-gdbserver-m32, branch master
- Failures on Fedora-ppc64be-m64, branch master
- Failures on Debian-i686, branch master
- Failures on Fedora-ppc64be-native-gdbserver-m64, branch master
- Failures on Debian-i686-native-gdbserver, branch master
- Failures on Fedora-ppc64be-native-extended-gdbserver-m64, branch master
- Failures on Debian-x86_64-native-gdbserver-m64, branch master
- Failures on Fedora-ppc64le-native-extended-gdbserver-m64, branch master