diff options
-rw-r--r-- | src/H5D.c | 6 | ||||
-rw-r--r-- | src/H5Osdim.c | 2 | ||||
-rw-r--r-- | src/H5P.c | 1 |
3 files changed, 6 insertions, 3 deletions
@@ -190,8 +190,10 @@ hatom_t H5D_find_name(hatom_t grp_id, hobjtype_t type, const char *name) HGOTO_ERROR(H5E_DATASET, H5E_NOTFOUND, FAIL); /* Get the dataset's type (currently only atomic types) */ - if (NULL==(dset->type=H5O_read (dset->file, dset->ent.header, &(dset->ent), - H5O_SIM_DTYPE, 0, NULL))) + if((dset->type=HDmalloc(sizeof(h5_datatype_t)))==NULL) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL); + if (NULL==H5O_read (dset->file, dset->ent.header, &(dset->ent), + H5O_SIM_DTYPE, 0, dset->type)) HGOTO_ERROR(H5E_OHDR, H5E_NOTFOUND, FAIL); /* Get the dataset's dimensionality (currently only simple dataspaces) */ diff --git a/src/H5Osdim.c b/src/H5Osdim.c index f8d8a73..5549fc0 100644 --- a/src/H5Osdim.c +++ b/src/H5Osdim.c @@ -224,7 +224,7 @@ H5O_sim_dim_fast (const H5G_entry_t *ent, void *mesg) sdim->dim_flags = 0; sdim->size = H5MM_xmalloc (sizeof(uint32) * sdim->rank); for (u=0; u<sdim->rank; u++) { - sdim->size[u] = ent->cache.sdata.dim[u]; + sdim->size[u] = ent->cache.sdata.dim[u]; } } else { sdim = NULL; @@ -449,6 +449,7 @@ herr_t H5P_release(hatom_t oid) if(dim->s->perm!=NULL) HDfree(dim->s->perm); HDfree(dim->s); + dim->s=NULL; } /* end if */ } /* end if */ HDfree(dim); |