summaryrefslogtreecommitdiffstats
path: root/src/H5VLnative_file.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix for HDFFV-11052: h5debug fails on a corrupted file (h5_nrefs_POC)… ↵vchoi-hdfgroup2023-02-261-23/+29
| | | | | | | | | | | | | | | | | | | | | | | | (#2291) (#2496) * Fix for HDFFV-11052: h5debug fails on a corrupted file (h5_nrefs_POC) producing a core dump. When h5debug closes the corrupted file, the library calls H5F__dest() which performs all the closing operations for the file "f" (H5F_t *) but just keeping note of errors in "ret_value" all the way till the end of the routine. The user-provided corrupted file has an illegal file size causing failure when reading the image during the closing process. At the end of this routine it sets f->shared to NULL and then frees "f". This is done whether there is error or not in "ret_value". Due to the failure in reading the file earlier, the routine then returns error. The error return from H5F__dest() causes the file object "f" not being removed from the ID node table. When the library finally exits, it will try to close the file objects in the table. This causes assert failure when H5F_ID_EXISTS(f) or H5F_NREFS(f). Fix: a) H5F_dest(): free the f only when there is no error in "ret_value" at the end of the routine. b) H5VL__native_file_close(): if f->shared is NULL, free "f"; otherwise, perform closing on "f" as before. c) h5debug.c main(): track error return from H5Fclose(). * Committing clang-format changes Co-authored-by: vchoi <vchoi@jelly.ad.hdfgroup.org> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* clang 13 format #1933 (#1939)Allen Byrne2022-07-271-17/+17
|
* Update URL in source file Copyright headers for web copy of COPYINGLarry Knox2021-02-201-1/+1
| | | | file - src and test directories.
* Source formattedAllen Byrne2020-10-011-556/+509
|
* Whitespace cleanupAllen Byrne2020-05-131-5/+5
|
* Squashed commit of the following:David Young2020-01-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit ff7a9a34de2fcd78f5d32a1532f3d0e224b20d94 Author: Kimmy Mu <kmu@hdfgroup.org> Date: Wed Jan 29 14:12:18 2020 -0600 Merge pull request #2324 in HDFFV/hdf5 from ~KMU/hdf5:hdf5_1_12 to hdf5_1_12 * commit '781fa57f6ee816e037dd12fff02d37ff7ec9c2b1': pick up missing piece from merge Merge pull request #2311 in HDFFV/hdf5 from ~KMU/hdf5:misc to develop remove redundent definition Merge pull request #2311 in HDFFV/hdf5 from ~KMU/hdf5:misc to develop Merge pull request #2311 in HDFFV/hdf5 from ~KMU/hdf5:misc to develop Merge pull request #2315 in HDFFV/hdf5 from ~KMU/hdf5:develop to develop missing prototype warning prototype issue Merge pull request #2306 in HDFFV/hdf5 from ~KMU/hdf5:develop to develop Merge pull request #2300 in HDFFV/hdf5 from ~KMU/hdf5:squashed_cast to develop Merge pull request #2291 in HDFFV/hdf5 from ~KMU/hdf5:bugfix/uninitialized to develop Merge pull request #2295 in HDFFV/hdf5 from ~KMU/hdf5:bugfix/float to develop Merge pull request #2292 in HDFFV/hdf5 from ~KMU/hdf5:bugfix/prototype to develop Merge pull request #2094 in HDFFV/hdf5 from ~KMU/hdf5:bugfix/unused to develop commit 9f3d808c05d2a3b308f32c958c6671fcac0a432c Author: David Young <dyoung@hdfgroup.org> Date: Wed Jan 29 11:43:55 2020 -0600 testpar/t_2Gio.c: Fix a typo that I think was introduced by a previous warnings PR. An array element was assigned to itself---shape[2]Â =Â shape[2];---instead of being assigned to chunk[2]. fortran/src/H5Pf.c: move conditional compilation controlled by H5_NO_DEPRECATED_SYMBOLS outside of a function for readability. fortran/src/H5match_types.c: put a variable's declaration under the same conditional compilation (H5_FORTRAN_HAVE_C_LONG_DOUBLE) as its use. For now, skip compilation of some unused debug dump routines in the JNI. While I'm in the JNI, delete a set-but-unused variable. src/H5Z.c: condition a variable declaration on H5_NO_DEPRECATED_SYMBOLS so that it's not declared but unused or vice versa. test/cache_common.h: add an #include in to get some symbols we need to avoid implicit declaration warnings. test/dsets.c: use a more conventional conditional-compilation syntax. test/dt_arith.c, test/fillval.c: initialize a bunch of uninitialized variables before use. test/vfd.c: pass the expected type of `void **` to posix_memalign(3) instead of `int **`. testpar/t_bigio.c: explicitly compare with 0 instead of using ! when "equal to 0?" is the question not "is false?" Repair some indentation while I'm here. testpar/testpar.h: repair misaligned line-continuation backslashes in a macro that probably should be a function so that we don't have to fiddle with the line continuation to begin with. tools/src/h5repack/h5repack_main.c: fix some compiler fussing about enums. tools/test/perform/pio_engine.c: the compiler fusses if you cast a function call returning double directly to off_t. It's ok if you cast a variable that's a double to off_t, however. Write and use a new function, sqrto(), to avoid the cast warnings. commit 43a4b80b21c0329fbc1f9a0e2854795189f0bb50 Author: David Young <dyoung@hdfgroup.org> Date: Wed Jan 29 10:47:30 2020 -0600 Reduce casts of HDcalloc()/HDmalloc() that -Wc++-compat required. Reduce gratuitous casts---e.g., (size_t)1. Use the right format string for a pointer. In the H5C sanity checks, change a "size increase" variable from ssize_t (too narrow) to int64_t (wide enough). Parenthesize every appearance of `storage` in the macro `H5D_CHUNK_STORAGE_INDEX_CHK(storage)` so that you can pass in an expression like &sc and it works properly. Disallow re-assignment of the `dset` parameter to H5D__chunk_init() because it helped assure me that it's safe to replace the repeating expression `&dset->shared->layout.storage.u.chunk` with `sc` throughout. Replace lengthy expressions such as `&dset->shared->layout.storage.u.chunk` with `sc` throughout several functions in H5Dchunk.c ISTR that the compiler warned that `sc` was declared but unused in a couple of functions, and then I found that `sc` could be used in many places. Maybe the disused `sc` appeared because a bunch of code was copied and pasted, I don't know. Anyway, it's a lot tighter code now that I use `sc`. In H5D__chunk_update_old_edge_chunks() and H5D__chunk_delete() I actually expand `sc` and another temporary variable, `pline`, because they're used only in !defined(NDEBUG) code. This squashes unused-variable warnings in the defined(NDEBUG) configuration. Don't drop the `volatile` qualification with a cast in tools/src/h5import/h5import.c. commit 035bfa0769a4012881fc659b673bacf44d146537 Author: David Young <dyoung@hdfgroup.org> Date: Tue Jan 28 20:35:28 2020 -0600 Reduce differences between my -Werror branch and `develop`: Rename index -> idx, fileno -> fnumber, fileno -> fno to avoid GCC shadowed declaration warnings about index(3). Convert #pragma GCC diagnostic push/pop/ignored to the HDF5 library's H5_GCC_DIAG_OFF()/H5_GCC_DIAG_ON() macros.
* Squashed commit of the token_refactoring branch:Dana Robinson2020-01-191-3/+3
|
* Refactor all the 'H5VL_*_optional' callbacks to move the type of operation outQuincey Koziol2020-01-041-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the va_list, so it's at least possible for another connector to know what the operation is and decide whether to implement it or not. Added a new VOL sub-class called "introspect" where callbacks that report information about the connector or container can be placed. Added an 'opt_query' callback to this sub-class, for a connector to report back to the library whether a particular optional callback operation is supported. Also added a 'get_conn_cls' introspection callback, to retrieve the H5VL_class_t of a connector (either the "current" connector, H5VL_GET_CONN_LVL_CURR, or the terminal connector, H5VL_GET_CONN_LVL_TERM). Moved the "post open" operation from a file 'specific' operation to a file 'optional' operation, now that it's possible to detect (with the 'opt_query' introspection callback) whether a VOL connector implements an optional operation, without just returning an error. Added new internal VOL helper routines: H5VL_object_is_native, to determine if an object is in (or is a) native file, and H5VL_file_is_same, to determine if two objects are in (or are) the same terminal VOL connector's container. (And moved the special handling for FILE_IS_EQUAL operation out of internal VOL callback routine into H5VL_file_is_same) Made new dataset 'get' operation for H5Dvlen_get_buf_size, aligning it better with other 'get' operations in API. Fixed several issues with pass-through connectors, which are now passing the 'make check-passthrough-vol' tests again. A bunch of warning and style cleanups as well.
* Minor tweaks noticed while going over VOL documentation.Dana Robinson2019-12-161-4/+4
|
* Remove H5VL_NATIVE_FILE_GET_FILE_ID and add H5VL_OBJECT_GET_FILEJerome Soumagne2019-12-091-14/+0
| | | | Remove H5F__get_file_id() and use only private routine instead
* Implement file comparison VOL callback. Other changes to allowNeil Fortner2019-12-061-0/+13
| | | | | references to work with non-native connectors. There is a bug somewhere.
* Merged HDFFV-10929_2GB_testing to hdf5_1_12Richard Warren2019-12-061-0/+9
|
* Corrected missing parallel #ifdefs.Dana Robinson2019-10-111-0/+2
|
* Marked up H5Fget/set_mpi_atomicity() to use the VOL.Dana Robinson2019-10-111-0/+18
|
* Add new H5R API that abstracts object, region and attribute reference typesJerome Soumagne2019-10-081-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also support references to external files Add new H5T_REF type and type conversion routines Support conversion from H5T_REF_OBJ/DSET_REG to H5T_REF Add H5Treclaim() API to reclaim memory of vlen/reference types Deprecate H5Dvlen_reclaim() Fix H5T_vlen_reclaim() and H5T_reclaim() to use private callback Add H5T_ref_reclaim() Move previous H5R APIs to H5Rdeprec.c Clean up H5Ocopy Separate H5O_copy_expand_ref() to H5Ocopy_ref() Add support for copying new reference types Clean up deprecated routines to go through VOL and same code path Fix return codes in existing trefer.c test Rename trefer.c to trefer_deprec.c trefer.c is for new references Add performance test for trefer Add additional obj_copy_ref test Make use of tokens and blobs to store references Skip blob encoding for object references Start adding new reference examples
* Adapt Jerome's "file info" H5VL 'get' query to retrieve container token info.Quincey Koziol2019-10-081-37/+49
| | | | Remove "by address" location for VOL operations. (Switching to "by token")
* Fix H5F_get_file_id and H5F__get_file_id to take app_ref parameterJerome Soumagne2019-08-141-1/+2
| | | | Fix app_ref_count from being incremented when private routines are used
* Added H5Fdelete call and VOL support (but no VFD/native implementation).Dana Robinson2019-06-111-1/+7
|
* Add H5Fget_fileno() API routine.Quincey Koziol2019-04-121-0/+13
|
* C and POSIX call cleanupDana Robinson2019-01-111-2/+2
|
* Merge branch 'develop' into dset_ohdr_minimizeJacob Smith2018-12-281-3/+3
|\
| * Squash merge of MDC logging changes.Dana Robinson2018-12-211-3/+3
| |
* | Merge branch 'develop' into dset_ohdr_minimizeJacob Smith2018-12-271-0/+19
|/
* Moved private native VOL connector functions to H5VLnative_private.h.Dana Robinson2018-12-201-1/+1
|
* Moved the remainder of the code into separate files.Dana Robinson2018-12-201-0/+798
|
* Split the native VOL connector code into multiple files andDana Robinson2018-12-201-0/+13
moved the attribute code over.