Files
osobhandClaude Opus 5.5 c7092722aa fix(format): locate the address in version-1 shared messages
A version-1 shared message reference is version, type, six reserved bytes
and then an old-style symbol table entry: link-name offset (length size),
object header address, cache type, reserved, scratch. We read the address
straight after the reserved bytes, i.e. the link-name offset, and the
committed datatype lookup failed with InvalidObjectHeaderVersion (the bytes
checked in tcompound.h5: name offset 0x10, then 0x590 = /type1). Datasets
of 1.4/1.6-era files that use a committed datatype were unreadable.

Skip the name offset. parse_shared_ref has no length size, so add
parse_shared_ref_sized and use it in every internal caller;
parse_shared_ref keeps its signature and assumes length size == offset
size. The old parse_v1_ref unit test encoded the wrong layout and now uses
the real bytes.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-25 21:55:31 -05:00

840 B

Legacy (HDF5 1.4/1.6-era) fixtures

Unmodified copies of the HDF Group's own test files from https://github.com/HDFGroup/hdf5 at a3cf1ea82cc7a66e50029a688121e1b105a7ce88 (BSD-style license, see that repository's LICENSE). Current libraries cannot write these structures, so they are kept as files.

File Upstream path Exercises
deflate.h5 test/testfiles/deflate.h5 Data Layout message v1, chunked + deflate (v1 B-tree index)
h5ex_g_iterate.h5 HDF5Examples/C/H5G/h5ex_g_iterate.h5 Data Layout message v2, contiguous; an unallocated dataset
tarrold.h5 test/testfiles/tarrold.h5 Compound datatype v1 members with legacy array dimensions
tcompound.h5 tools/test/testfiles/tcompound.h5 Version-1 shared messages (committed datatypes); compound v1 array members with data