summaryrefslogtreecommitdiffstats
path: root/src/H5FDfamily.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2010-02-27 20:51:49 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2010-02-27 20:51:49 (GMT)
commitc3e5a191940ab521fad2c917e852622cbebd67c8 (patch)
tree3cafb70c78389ee106a78eb60fd28b7bef98c1ad /src/H5FDfamily.c
parentc56a7d4ee29dc2ae89e76c8915bc142bd62485b1 (diff)
downloadhdf5-c3e5a191940ab521fad2c917e852622cbebd67c8.zip
hdf5-c3e5a191940ab521fad2c917e852622cbebd67c8.tar.gz
hdf5-c3e5a191940ab521fad2c917e852622cbebd67c8.tar.bz2
[svn-r18348] Description:
Bring r18346 from trunk to 1.8 branch: Bring Coverity fixes back from branch to trunk: r18336: Fix coverity issues 275, 276, 277, 323, 432, 433, and 434 r18337: Fix Coverity issue #106: release free space section node on error r18338: Fixed Coverity #94 - In H5P_register, new_class wasn't closed when there's an error after it's created. r18339: Fix Coverity #185 - In test_conv_str_1, BUF wasn't freed when there's an error in this function. r18340: Correct error in r18337 that wasn't releasing indirect fractal heap block early enough. r18341: Close nodes if any failed in the middle of allocating new nodes. Coverity 140 and 141 r18342: Correct [another] problem w/r18337. r18343: Fix coverity items 185, 20, and 21. r18344: Fix Coverity 213 - In H5FD_family_close, the double pointer file->memb was dereferenced without NULL checking (We believe). r18345: Fix Coverity issue # 210; removed NULL check after pointer dereferenced in H5HFdblock.c. Also assigned NULL to pointer in H5Pint.c to fix segmentation fault. Tested on: FreeBSD/32 6.3 (duty) w/debug) (h5committested on trunk)
Diffstat (limited to 'src/H5FDfamily.c')
-rw-r--r--src/H5FDfamily.c38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/H5FDfamily.c b/src/H5FDfamily.c
index bb89570..67bb107 100644
--- a/src/H5FDfamily.c
+++ b/src/H5FDfamily.c
@@ -894,45 +894,43 @@ done:
* Programmer: Robb Matzke
* Wednesday, August 4, 1999
*
- * Modifications:
- *
*-------------------------------------------------------------------------
*/
static herr_t
H5FD_family_close(H5FD_t *_file)
{
- H5FD_family_t *file = (H5FD_family_t*)_file;
- unsigned nerrors=0; /* Number of errors while closing member files */
- unsigned u; /* Local index variable */
- herr_t ret_value=SUCCEED; /* Return value */
+ H5FD_family_t *file = (H5FD_family_t*)_file;
+ unsigned nerrors = 0; /* Number of errors while closing member files */
+ unsigned u; /* Local index variable */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5FD_family_close, FAIL)
/* Close as many members as possible. Use private function here to avoid clearing
* the error stack. We need the error message to indicate wrong member file size. */
- for (u=0; u<file->nmembs; u++) {
- if (file->memb[u]) {
- if (H5FD_close(file->memb[u])<0)
+ for(u = 0; u < file->nmembs; u++) {
+ if(file->memb[u]) {
+ if(H5FD_close(file->memb[u]) < 0)
nerrors++;
else
file->memb[u] = NULL;
- }
- }
- if (nerrors)
- HGOTO_ERROR(H5E_FILE, H5E_CANTCLOSEFILE, FAIL, "unable to close member files")
+ } /* end if */
+ } /* end for */
+ if(nerrors)
+ /* Push error, but keep going*/
+ HDONE_ERROR(H5E_FILE, H5E_CANTCLOSEFILE, FAIL, "unable to close member files")
/* Clean up other stuff */
- if(H5I_dec_ref(file->memb_fapl_id, FALSE)<0)
- HGOTO_ERROR(H5E_VFL, H5E_CANTDEC, FAIL, "can't close driver ID")
- if (file->memb)
- H5MM_xfree(file->memb);
- if (file->name)
- H5MM_xfree(file->name);
+ if(H5I_dec_ref(file->memb_fapl_id, FALSE) < 0)
+ /* Push error, but keep going*/
+ HDONE_ERROR(H5E_VFL, H5E_CANTDEC, FAIL, "can't close driver ID")
+ H5MM_xfree(file->memb);
+ H5MM_xfree(file->name);
H5MM_xfree(file);
done:
FUNC_LEAVE_NOAPI(ret_value)
-}
+} /* end H5FD_family_close() */
/*-------------------------------------------------------------------------