| Commit message (Collapse) | Author | Files | Lines |
|
* src/init.c (emergency_cleanup_list): New gloabl var.
(_gpgrt_add_emergency_cleanup): New.
(_gpgrt_abort): New. Repalce all calls to abort by this. Also replace
all assert by either log_assert or a stderr output followed by a
_gpgrt_abort.
(run_emergency_cleanup): New.
* src/visibility.c (gpgrt_add_emergency_cleanup): New public API.
(gpgrt_abort): New public API.
--
Libgcrypt uses its own assert function which makes sure to terminate
the secure memory. This is safe as log as an assert is triggered
internally in Libgcrypt. GnuPG runs emergency cleanup handlers right
before log_fatal etc to tell Libgcrypt to terminate the secure memory.
With the move of the logging function to gpgrt in gnupg 2.3 this did
not anymore. Thus we now provide a mechanism in gpgrt to do right
that. Eventually Libgcrypt can also make use of this.
What this does not handle are calls to abort or failed asserts in
external libraries or in libc. We can't do anything about it in a
library because a library may not setup signal handlers.
Signed-off-by: Werner Koch <[email protected]>
|
|
* gpgscm/Makefile.am: Remove cruft leftover from GnuPG. Link to the
just build libgpg-error.
* gpgscm/private.h: Include gpgrt.h and provide i18n macros.
(xfree, xtrymalloc, xtrycalloc, xtryrealloc): New macros.
(xmalloc, xstrdup): New inline functions.
* gpgscm/main.c: Remove inclusion of gcrypt.h and gpg-error.h. Remove
all other gnupg specific headers.
(opts, parse_arguments): Temporary comment out.
(main): Adjust for use with gpgrt. Temporary comment out some stuff.
* gpgscm/ffi-private.h: Include local gpgrt.h instead of gpg-error.h.
* gpgscm/ffi.h: Ditto.
* gpgscm/ffi.c: Remove gpg-error.h and headers from GnuPG.
(do_getenv): Use gpgrt_getenv.
(do_setenv): Use gpgrt_setenv.
(do_mkdtemp): Temporary return an error.
(unlink_recursively): Use gpgrt_bsprintf.
(do_getcwd): Use gpgrt_getcwd.
(do_mkdir): Use gpgrt_mkdir.
(do_get_isotime): Temporary return an error.
(do_get_time): Directly use time().
--
Note that this does not yet compile because the spawn functions from
GnuPG are missing. There are two other problems as well:
- We don't have GnuPG's isotime fucntions. We need to see whether we
want to support them in gpgrt. That might be useful in libksba.
- gpgrt_mkdtemp does not work. We do not want to link to Libgcrypt,
which is the way mkdtemp was written for GnuPG. We should get a
more straight implementation.
Signed-off-by: Werner Koch <[email protected]>
|
|
--
All changes to TinySCHEME were done by employees of g10 Code GmbH and
some minor things by a contractor.
Signed-off-by: Werner Koch <[email protected]>
|
|
--
Note that we used
git filter-branch --subdirectory-filter tests/gpgscm
in gnupg master to filter out the gpgscm part. This commit merely
moves these files to a subdirectory which will be used in libgpg-error
for gpgscm.
Signed-off-by: Werner Koch <[email protected]>
|
|
* tests/gpgscm/main.c (path_absolute_p): New function.
(load): Use new function.
Signed-off-by: Justus Winter <[email protected]>
|
|
* tests/gpgscm/main.c (load): Increase logging threshold.
Signed-off-by: Justus Winter <[email protected]>
|
|
* tests/gpgscm/Makefile.am (EXTRA_DIST): Add new file.
* tests/gpgscm/lib.scm (string-translate): New function.
* tests/gpgscm/main.c (main): Load new file.
* tests/gpgscm/tests.scm (dirname): New function.
(test-pool): Record execution times, emit XML report.
(test): Record execution times, record log file name, emit XML report.
(run-tests-parallel): Write XML report.
(run-tests-sequential): Likewise.
* tests/gpgscm/xml.scm: New file.
* tests/gpgme/Makefile.am (CLEANFILES): Add 'report.xml'.
* tests/gpgsm/Makefile.am: Likewise.
* tests/migrations/Makefile.am: Likewise.
* tests/openpgp/Makefile.am: Likewise.
Signed-off-by: Justus Winter <[email protected]>
|
|
* tests/openpgp/defs.scm (with-home-directory,
with-ephemeral-home-directory): Move...
* tests/gpgscm/gnupg.scm: ... to this new file.
* tests/gpgscm/main.c (main): Load the new file.
Signed-off-by: Justus Winter <[email protected]>
|
|
* tests/gpgscm/main.c (load): Try to mmap the script.
* tests/gpgscm/scheme.c (scheme_load_memory): New function, a
generalization of 'scheme_load_string'.
* tests/gpgscm/scheme.h (scheme_load_memory): New prototype.
Signed-off-by: Justus Winter <[email protected]>
|
|
* g10, scd, test, tools: Follow the change of removal of -Icommon.
Signed-off-by: NIIBE Yutaka <[email protected]>
|
|
--
This fixes extra word repetitions (like "the the" or "is is") in the
code and docs.
Signed-off-by: Daniel Kahn Gillmor <[email protected]>
|
|
* tests/gpgscm/ffi.scm: Move the customized exception handling and
atexit logic...
* tests/gpgscm/init.scm: ... here.
(throw): Record the current history.
(throw'): New function that is history-aware.
(rethrow): New function.
(*error-hook*): Use the new throw'.
* tests/gpgscm/main.c (load): Fix error handling.
(main): Save and use the 'sc->retcode' as exit code.
* tests/gpgscm/repl.scm (repl): Print call history.
* tests/gpgscm/scheme.c (_Error_1): Make a snapshot of the history,
use it to provide a accurate location of the expression causing the
error at runtime, and hand the history trace to the '*error-hook*'.
(opexe_5): Tag all lists at parse time with the current location.
* tests/gpgscm/tests.scm: Update calls to 'throw', use 'rethrow'.
Signed-off-by: Justus Winter <[email protected]>
|
|
--
|
|
* tests/gpgscm/ffi.scm (throw): Run *run-atexit-handlers* when
terminating the interpreter.
(*atexit-handlers*): New variable.
(*run-atexit-handlers*): New function.
(atexit): Likewise.
* tests/gpgscm/main.c (main): Run *run-atexit-handlers* at normal
interpreter shutdown.
Signed-off-by: Justus Winter <[email protected]>
|
|
* tests/gpgscm/ffi.c (do_get_isotime): New function.
(ffi_init): Add parameter 'scriptname', bind new function and
scriptname.
* tests/gpgscm/ffi.h (ffi_init): Update prototype.
* tests/gpgscm/main.c (main): Hand in the script name.
* tests/gpgscm/tests.scm (mkdtemp): Use current time and script name
for the names of temporary directories.
Signed-off-by: Justus Winter <[email protected]>
|
|
* tests/gpgscm/main.c (main): Check against required and not installed
version.
Signed-off-by: Werner Koch <[email protected]>
|
|
* tests/gpgscm/main.c (load): Print error message.
* tests/gpgscm/scheme.c (opexe_0): Correctly report nesting level when
loading files.
Signed-off-by: Justus Winter <[email protected]>
|
|
* agent/preset-passphrase.c, agent/protect-tool.c, dirmngr/dirmngr.c
* dirmngr/t-http.c, g10/gpg.c, g10/gpgv.c, g13/g13-syshelp.c
* g13/g13.c, kbx/kbxutil.c, scd/scdaemon.c, sm/gpgsm.c
* tests/gpgscm/main.c, tools/gpg-check-pattern.c
* tools/gpg-connect-agent.c, tools/gpgconf.c, tools/gpgtar.c
* tools/symcryptrun.c: Invoke log_set_prefix() with
human-readable labels.
--
Some invocations of log_set_prefix() were done with raw numeric values
instead of values that humans can understand. Use symbolic
representations instead of numeric for better readability.
Signed-off-by: Daniel Kahn Gillmor <[email protected]>
|
|
* tests/gpgscm/main.c (main): Use the allocator from libgcrypt.
Signed-off-by: Justus Winter <[email protected]>
|
|
* tests/gpgscm/ffi-private.h (ffi_schemify_name): Fix prototype.
(ffi_define_function_name): Free schemified name.
(ffi_define_function): Likewise.
(ffi_define_constant): Likewise.
(ffi_define_variable_pointer): Likewise.
* tests/gpgscm/ffi.c (do_wait_processes): Free arrays.
(ffi_schemify_name): Fix type.
* tests/gpgscm/main.c (main): Free 'sc'.
Signed-off-by: Justus Winter <[email protected]>
|
|
* configure.ac: Add new component.
* tests/Makefile.am: Likewise.
* tests/gpgscm/Makefile.am: New file.
* tests/gpgscm/ffi-private.h: Likewise.
* tests/gpgscm/ffi.c: Likewise.
* tests/gpgscm/ffi.h: Likewise.
* tests/gpgscm/ffi.scm: Likewise.
* tests/gpgscm/lib.scm: Likewise.
* tests/gpgscm/main.c: Likewise.
* tests/gpgscm/private.h: Likewise.
* tests/gpgscm/repl.scm: Likewise.
* tests/gpgscm/scheme-config.h: Likewise.
* tests/gpgscm/t-child.c: Likewise.
* tests/gpgscm/t-child.scm: Likewise.
* tests/gpgscm/tests.scm: Likewise.
Signed-off-by: Justus Winter <[email protected]>
|