summaryrefslogtreecommitdiffstats
path: root/src/H5Tconv.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-08-08 22:12:18 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-08-08 22:12:18 (GMT)
commit6ae26dba82e56fd6e895ca116a51da070470ba5b (patch)
treee5a8e813a7a306ef13ff733b972b3cf49685af79 /src/H5Tconv.c
parent51bdf6c34d5d36f9ab4b4b977865b356c75dc736 (diff)
downloadhdf5-6ae26dba82e56fd6e895ca116a51da070470ba5b.zip
hdf5-6ae26dba82e56fd6e895ca116a51da070470ba5b.tar.gz
hdf5-6ae26dba82e56fd6e895ca116a51da070470ba5b.tar.bz2
[svn-r9053] Purpose:
Bug fix Description: Correct possible core dump when a datatype conversion function is registered with the library after a compound datatype has been converted (having it's type conversion information cached by the library). The compound datatype must have been created by inserting the fields in non-increasing offset order to see the bug. Solution: Re-sort the fields in the compound datatypes before recalculating the cached information when performing the conversion on them. Platforms tested: FreeBSD 4.10 (sleipnir) h5committested
Diffstat (limited to 'src/H5Tconv.c')
-rw-r--r--src/H5Tconv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/H5Tconv.c b/src/H5Tconv.c
index a419577..0a500b5 100644
--- a/src/H5Tconv.c
+++ b/src/H5Tconv.c
@@ -1534,6 +1534,12 @@ H5T_conv_struct_init (H5T_t *src, H5T_t *dst, H5T_cdata_t *cdata, hid_t dxpl_id)
}
}
}
+ else {
+ /* Restore sorted conditions for the datatypes */
+ /* (Required for the src2dst array to be valid) */
+ H5T_sort_value(src, NULL);
+ H5T_sort_value(dst, NULL);
+ } /* end else */
/*
* (Re)build the cache of member conversion functions and pointers to