includes: define cleanup functions for the use with __attribute__((cleanup))
This introduces GNUTLS_DEFINE_POINTER_CLEANUP_FUNC
macro to define
wrapper functions around gnutls_*_deinit
, to be used with the cleanup
attribute supported by modern C compilers.
That enables automatic cleanup of resources inside a function; applications could initialize pointers like the following:
__attribute__((cleanup(gnutls_deinitp)))
gnutls_session_t session = NULL;
if (err)
return err;
Then gnutls_deinit
is automatically called on session when the
function returns error.
Checklist
-
Commits have Signed-off-by:
with name/author being identical to the commit author -
Code modified for feature -
Test suite updated with functionality tests -
Test suite updated with negative tests -
Documentation updated / NEWS entry present (for non-trivial changes) -
CI timeout is 2h or higher (see Settings/CICD/General pipelines/Timeout)
Reviewer's checklist:
-
Any issues marked for closing are addressed -
There is a test suite reasonably covering new functionality or modifications -
Function naming, parameters, return values, types, etc., are consistent and according to CONTRIBUTION.md
-
This feature/change has adequate documentation added -
No obvious mistakes in the code
Edited by Daiki Ueno