diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2011-05-23 17:43:37 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2011-05-23 17:43:37 (GMT) |
commit | a01f323d4c6a10e34ba2975c964edde1c6070b95 (patch) | |
tree | cd473221a8047b733059ae31ff17a3f386a17aa4 /src/H5Eint.c | |
parent | 700b935f7be55fdcbd96b6ce515a2e55d32c350f (diff) | |
download | hdf5-a01f323d4c6a10e34ba2975c964edde1c6070b95.zip hdf5-a01f323d4c6a10e34ba2975c964edde1c6070b95.tar.gz hdf5-a01f323d4c6a10e34ba2975c964edde1c6070b95.tar.bz2 |
[svn-r20893] Description:
Bring r20885 from trunk to 1.8 branch:
r20340:
Address coverity issue 248. Set freed pointer to NULL if realloc fails, then check for NULL before attempting to close array of handles stored in memory addressed by pointer.
r20341:
Added initialization udata.path = NULL; udata.visited = NULL; to prevent unintialized use after done: label.
Do C-style initialization AFTER all variable definitions.
r20342:
Fix valgrind error in H5DUMP-XML-tall.h5
r20343:
Addressed Coverity issue 591 - check the return value of H5S_SELECT_ITER_RELEASE.
r20344:
Added initialization udata.path = NULL; to prevent uninitialized used after done: label
r20347:
Purpose: Fix memory leak in overhead.c
Description: Fixed leak in test() in overhead.c where array "had" was never
freed.
r20348:
Addressed Coverity issue 705 - added prototype for resize_configs_are_equal to cache_common.h.
r20392:
Purpose: Fix coverity issues 1677 and 1678
Description: Added return value checking for 4 funciton calls in
H5tools_get_symlink_info().
r20394:
Purpose: Fix coverity issues 1674 and 1675
Description: Modified H5Epush2() and H5E_printf_stack() to keep track of whether
va_start() has been called, and to call va_end() at the end if so.
r20395:
Should be H5MM_calloc(count * sizeof(void*)). Fixed --gh
r20396:
Should be H5MM_calloc(count * sizeof(void*)). Fixed. --gh
Tested on:
Mac OSX/32 10.6.7 (amazon) w/debug & production
(h5committested on branch)
Diffstat (limited to 'src/H5Eint.c')
-rw-r--r-- | src/H5Eint.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/H5Eint.c b/src/H5Eint.c index 1f05d52..1fc8a56 100644 --- a/src/H5Eint.c +++ b/src/H5Eint.c @@ -694,6 +694,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin int desc_len; /* Actual length of description when formatted */ #endif /* H5_HAVE_VASPRINTF */ char *tmp = NULL; /* Buffer to place formatted description in */ + hbool_t va_started = FALSE; /* Whether the variable argument list is open */ herr_t ret_value = SUCCEED; /* Return value */ /* @@ -718,6 +719,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin /* Start the variable-argument parsing */ va_start(ap, fmt); + va_started = TRUE; #ifdef H5_HAVE_VASPRINTF /* Use the vasprintf() routine, since it does what we're trying to do below */ @@ -759,13 +761,13 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin } /* end while */ #endif /* H5_HAVE_VASPRINTF */ - va_end(ap); - /* Push the error on the stack */ if(H5E_push_stack(estack, file, func, line, cls_id, maj_id, min_id, tmp) < 0) HGOTO_DONE(FAIL) done: + if(va_started) + va_end(ap); if(tmp) H5MM_xfree(tmp); |