[Bug other/40736] New: Fix for err_bad_typedef.c libffi test failure
gcc-bugzilla at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Jul 13 20:36:00 GMT 2009
err_bad_typedef.c leads to a call to initialize_aggregate with
arg->elemnts==NULL. This sets ptr on line 46 of
libffi/src/prep_cif.c to NULL, which is then dereferenced on
line 48.
Environment:
System: Linux dps 2.6.30.1-nofb #3 SMP PREEMPT Tue Jul 7 13:26:53 BST 2009
x86_64 GNU/Linux
Architecture: x86_64
host: x86_64-unknown-linux-gnu
build: x86_64-unknown-linux-gnu
target: x86_64-unknown-linux-gnu
configured with: ../gcc/trunk/configure -C --prefix=/usr --enable-hshared
--enab
le-languages=c,c++,fortran,java,objc --no-create --no-recursion
How-To-Repeat:
Run the err_bad_typedef.c test case in the libffi test
suite. It is an expected failure.
------- Comment #1 from dps at simpson dot demon dot co dot uk 2009-07-13 20:36 -------
Fix:
The following patch turns err_bad_typedef.c test case into an
unexpected pass and the pacthed version passes all the tests the
current version does. I= am assuming that ptr==NULL is not meant
to happen so failure is the appropriate response.
--- libffi/src/prep_cif.c.dist 2009-06-04 22:31:11.003714944 +0100
+++ libffi/src/prep_cif.c 2009-07-13 02:00:43.956506574 +0100
@@ -44,6 +44,8 @@
FFI_ASSERT(arg->alignment == 0);
ptr = &(arg->elements[0]);
+ if (ptr == NULL)
+ return FFI_BAD_TYPEDEF;
while ((*ptr) != NULL)
{
--
Summary: Fix for err_bad_typedef.c libffi test failure
Product: gcc
Version: 4.3.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dps at simpson dot demon dot co dot uk
GCC build triplet: x86_64-unknown-linux-gnu
GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40736
More information about the Gcc-bugs
mailing list