diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2010-07-29 19:07:26 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2010-07-29 19:07:26 (GMT) |
commit | 7fe87a24722f991ffc030782cd42d24df00dbace (patch) | |
tree | 7d466f911a952916b99e2c86e83202d0e07cffaa /src/H5Oattribute.c | |
parent | 178b80b679b874d99287b28898e242533721ea67 (diff) | |
download | hdf5-7fe87a24722f991ffc030782cd42d24df00dbace.zip hdf5-7fe87a24722f991ffc030782cd42d24df00dbace.tar.gz hdf5-7fe87a24722f991ffc030782cd42d24df00dbace.tar.bz2 |
[svn-r19153] Description:
Bring changes on Coverity branch back to trunk:
r19040:
Fixed coverity #440 - NULL check after dereference. We moved the NULL check up
into the IF block and changed it to assertion.
r19041:
Maintenance: Addressed Coverity issues 441 and 449 by initializing proper
variables
r19042:
In function H5O_chunk_protect (H5Ochunk.c):
- Initialize H5O_chunk_proxy_t pointers chk_proxy and ret_value.
- Free chk_proxy on error.
r19043:
Addressed coverity issues 442 - 448 by initializing pointers to NULL.
Tested on:
Mac OS X/32 10.6.4 (amazon) w/debug & production
(Too minor to require h5committest)
Diffstat (limited to 'src/H5Oattribute.c')
-rw-r--r-- | src/H5Oattribute.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/H5Oattribute.c b/src/H5Oattribute.c index dcb129d..f155c94 100644 --- a/src/H5Oattribute.c +++ b/src/H5Oattribute.c @@ -851,12 +851,17 @@ H5O_attr_write_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, /* Because the attribute structure is shared now. The only situation that requires * copying the data is when the metadata cache evicts and reloads this attribute. - * The attribute structure will be different in that situation. SLU-2010/7/29 */ - if(((H5A_t *)mesg->native)->shared != udata->attr->shared) + * The shared attribute structure will be different in that situation. SLU-2010/7/29 */ + if(((H5A_t *)mesg->native)->shared != udata->attr->shared) { + /* Sanity check */ + HDassert(((H5A_t *)mesg->native)->shared->data); + HDassert(udata->attr->shared->data); + HDassert(((H5A_t *)mesg->native)->shared->data != udata->attr->shared->data); + /* (Needs to occur before updating the shared message, or the hash * value on the old & new messages will be the same) */ - HDmemcpy(((H5A_t *)mesg->native)->shared->data, udata->attr->shared->data, - udata->attr->shared->data_size); + HDmemcpy(((H5A_t *)mesg->native)->shared->data, udata->attr->shared->data, udata->attr->shared->data_size); + } /* end if */ /* Mark the message as modified */ mesg->dirty = TRUE; |