diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-08-08 22:12:18 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-08-08 22:12:18 (GMT) |
commit | 6ae26dba82e56fd6e895ca116a51da070470ba5b (patch) | |
tree | e5a8e813a7a306ef13ff733b972b3cf49685af79 /src/H5Tconv.c | |
parent | 51bdf6c34d5d36f9ab4b4b977865b356c75dc736 (diff) | |
download | hdf5-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.c | 6 |
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 |