diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2023-09-01 02:05:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-01 02:05:32 (GMT) |
commit | 14fd7b2bf9c1cf52aff3b99c70822c463e451154 (patch) | |
tree | f1b91f5f6695548bf6d305724e33b4b5e1cb772f /src/H5Zscaleoffset.c | |
parent | 2e361e40eeeac9534c60b7c8aebf6be8601154f8 (diff) | |
download | hdf5-14fd7b2bf9c1cf52aff3b99c70822c463e451154.zip hdf5-14fd7b2bf9c1cf52aff3b99c70822c463e451154.tar.gz hdf5-14fd7b2bf9c1cf52aff3b99c70822c463e451154.tar.bz2 |
Fix valgrind warning about write of uninitialized bytes in ScaleOffset filter (#3390) (#3459)
Diffstat (limited to 'src/H5Zscaleoffset.c')
-rw-r--r-- | src/H5Zscaleoffset.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/H5Zscaleoffset.c b/src/H5Zscaleoffset.c index ff450cc..bbd7bed 100644 --- a/src/H5Zscaleoffset.c +++ b/src/H5Zscaleoffset.c @@ -1296,6 +1296,9 @@ H5Z__filter_scaleoffset(unsigned flags, size_t cd_nelmts, const unsigned cd_valu } /* output; compress */ else { + size_t used_bytes; + size_t unused_bytes; + HDassert(nbytes == d_nelmts * p.size); /* before preprocess, convert to memory endianness order if needed */ @@ -1347,7 +1350,10 @@ H5Z__filter_scaleoffset(unsigned flags, size_t cd_nelmts, const unsigned cd_valu /* (Looks like an error in the original determination of how many * bytes would be needed for parameters. - QAK, 2010/08/19) */ - HDmemset(outbuf + 13, 0, (size_t)8); + used_bytes = 4 + 1 + sizeof(unsigned long long); + assert(used_bytes <= size_out); + unused_bytes = size_out - used_bytes; + HDmemset(outbuf + 13, 0, unused_bytes); /* special case: minbits equal to full precision */ if (minbits == p.size * 8) { |