diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2011-02-08 21:35:54 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2011-02-08 21:35:54 (GMT) |
commit | 575469a6a7aef24eb79b7822c25f91043a4d4c2a (patch) | |
tree | 4d7980af0304bad8b86ee76ae6460120b20d65e4 /tools/h5jam/h5unjam.c | |
parent | a6d5fa2c7db165fa2cecee86bdbd201339349968 (diff) | |
download | hdf5-575469a6a7aef24eb79b7822c25f91043a4d4c2a.zip hdf5-575469a6a7aef24eb79b7822c25f91043a4d4c2a.tar.gz hdf5-575469a6a7aef24eb79b7822c25f91043a4d4c2a.tar.bz2 |
[svn-r20065] Description:
Bring changes from Coverity branch to trunk:
r19975:
Fixed potential mem leak at H5O_attr_open_by_name
r19980:
Fix coverity issue 792.
Free tmp_env_prefix in H5Lexternal.c line 365 if it is not NULL but its contents are 0 when it goes out of scope.
r20039:
Eliminate warnings about nested extern and implicit declarations of parallel_print and address Coverity defects 712-781 by #including h5tools_utils.h in h5diff_array.c, h5diff_attr.c, h5diff_dset.c and h5diff_util.c.
r20046:
Purpose: Address TOCTOU warnings in h5jam and h5unjam
Description: Coverity is afraid that the state of the input file could change
between the call to stat() and the call to open(). This is called a time-of-
check time-of-use (TOCTOU) vulnerability. Modified stat calls to fstat which
uses an open file pointer so it (hopefully) won't complain any more.
r20047:
Addressed coverity issues 135-137, 462-464. Local pointers that needed to be freed in case of error were moved out of a switch statement in src/H5Tnative.c, set to NULL, and checked before freeing.
Tested on:
Mac OS X/32 10.6.6 (amazon) w/debug & production
(h5committested on Coverity branch)
Diffstat (limited to 'tools/h5jam/h5unjam.c')
-rw-r--r-- | tools/h5jam/h5unjam.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/tools/h5jam/h5unjam.c b/tools/h5jam/h5unjam.c index 8e31ce1..fd79e1a 100644 --- a/tools/h5jam/h5unjam.c +++ b/tools/h5jam/h5unjam.c @@ -221,22 +221,20 @@ main(int argc, const char *argv[]) } - res = stat(input_file, &sbuf); + ifid = HDopen(input_file,O_RDONLY,0); + if(ifid < 0) { + error_msg("unable to open input HDF5 file \"%s\"\n", input_file); + exit(EXIT_FAILURE); + } - if (res < 0) { + res = HDfstat(ifid, &sbuf); + if(res < 0) { error_msg("Can't stat file \"%s\"\n", input_file); exit(EXIT_FAILURE); } fsize = sbuf.st_size; - ifid = HDopen(input_file,O_RDONLY,0); - - if (ifid < 0) { - error_msg("unable to open input HDF5 file \"%s\"\n", input_file); - exit(EXIT_FAILURE); - } - if (do_delete && (ub_file != NULL)) { error_msg("??\"%s\"\n", ub_file); exit(EXIT_FAILURE); |