aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* core: New functions gpgrt_abort and gpgrt_add_emergency_cleanup.Werner Koch2019-01-0415-46/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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]>
* estream: Use correct POSIX name THOUSEP.Werner Koch2018-12-121-5/+5
| | | | | | | | | | | * src/estream-printf.c: Replace HAVE_LANGINFO_THOUSANDS_SEP by HAVE_LANGINFO_THOUSEP. (pr_integer): Use THOUSEP. -- GnuPG-bug-id: 4286 Reported-by: miod Signed-off-by: Werner Koch <[email protected]>
* syscfg: Add a riscv32 architectureAlistair Francis2018-12-112-0/+24
| | | | | | | | * src/syscfg/lock-obj-pub.riscv32-unknown-linux-gnu.h: New. * src/Makefile.am (lock_obj_pub): Add it. Signed-off-by: Alistair Francis <[email protected]> Signed-off-by: pino-kim <[email protected]>
* gpgrt-config: Portability fix for use of expr.NIIBE Yutaka2018-12-091-3/+3
| | | | | | | | | | | * src/gpgrt-config (sysroot): Care about possible interpretation of minus sign be considered an option to a program. (MAIN): Don't use 'match' of expr but use ':' instead. -- Reported-by: Roman Bogorodskiy <[email protected]> Signed-off-by: NIIBE Yutaka <[email protected]>
* Silence cc warning about snprintf redefinitionWerner Koch2018-12-071-0/+1
| | | | | | | | * src/gpgrt-int.h: First undef snprintf. -- GnuPG-bug-id: 4285 Signed-off-by: Werner Koch <[email protected]>
* Add W32-only function gpgrt_w32_override_locale.Werner Koch2018-12-074-21/+95
| | | | | | | | | | | | * src/w32-gettext.c (struct override_locale): new. (my_nl_locale_name): Take care of that. (gpgrt_w32_override_locale): New. * src/gpg-error.def.in: Add gpgrt_w32_override_locale. * src/gpg-error.c: New command --locale for Windows. -- GnuPG-bug-id: 3733 Signed-off-by: Werner Koch <[email protected]>
* logging: Escape controls in string arguments of log_ functions.Werner Koch2018-12-061-1/+103
| | | | | | | | | | | | | | | | * src/logging.c (struct fmt_string_filter_s): New. (fmt_string_filter): New. (_gpgrt_logv_internal): Use the filter. -- This change has two advantages: a) There is no more need to first escape string arguments before passing them to a log function and b) you can't forget to do the escaping and thus attacks using diagnostic output to trick out users won't work. The drawback is that you see \n instead of a real LF and under Windows the backslash in file names are doubled. Signed-off-by: Werner Koch <[email protected]>
* core: Allow logging to an estream.Werner Koch2018-12-051-7/+14
| | | | | | | | | * src/logging.c (set_file_fd): Add and use new arg 'stream'. (_gpgrt_log_set_sink): Implement setting an estream sink. * tests/t-logging.c: New test. * tests/Makefile.am (TESTS): Add test. Signed-off-by: Werner Koch <[email protected]>
* Fix gpgrt_ftruncate declaration.Marcus Brinkmann2018-12-051-1/+1
|
* core: New functions gpgrt_fprintf_sf anf gpgrt_fprintf_sf_unlocked.Werner Koch2018-11-2610-35/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in (gpgrt_string_filter_t): New type. (gpgrt_fprintf_sf, gpgrt_fprintf_sf_unlocked): New. * src/gpg-error.vers, src/gpg-error.def.in: Add them. * src/visibility.c (gpgrt_fprintf_sf): New. (gpgrt_fprintf_sf_unlocked): New. * src/estream-printf.c (pr_string): Add and use args sf, sfvalue and string_no. (do_format): Add args sf and sfvalue. Keep a string format counter. (_gpgrt_estream_format): Add args sf and sfvalue. Change all callers to provide NULL for them. * src/estream.c (_gpgrt_vfprintf_unlocked, _gpgrt_vfprintf): Add sf and sfvalue and adjust all callers. (do_print_stream): Ditto. * tests/t-printf.c (stream_to_string): New. (struct sfstate_s): New. (string_filter): New. (check_fprintf_sf): New. (main): Call new test. -- The actual reason to implement these functions is to enhance the internal logging function with a filter to sanitized strings so that control values or other things can be quoted. Signed-off-by: Werner Koch <[email protected]>
* core: Add a limited version of gpgrt_ftruncate.Werner Koch2018-11-267-1/+45
| | | | | | | | | | | | | | | * src/gpg-error.h.in (gpgrt_ftruncate, es_ftruncate): New. * src/gpg-error.def.in, src/gpg-error.vers: Add gpgrt_ftruncate. * src/visibility.c (gpgrt_ftruncate): new. * src/gpgrt-int.h (COOKIE_IOCTL_TRUNCATE): New. * src/estream.c (func_mem_ioctl): Support new internal IOCTL. (_gpgrt_ftruncate): New. -- Right now the ftruncate works only on memory streams. Can easily be added to other stream times. Signed-off-by: Werner Koch <[email protected]>
* core: New API gpgrt_cmp_versionWerner Koch2018-11-157-27/+183
| | | | | | | | | | | | | | | | | | | | | * src/gpg-error.h.in: New API gpgrt_cmp_version. * src/visibility.c (gpgrt_cmp_version): New wrapper. * src/version.c (parse_version_string): Revamped. (do_cmp_version): New. (_gpgrt_cmp_version): New. (_gpg_error_check_version): Re-implemented using the new func. * tests/t-version.c: Include t-common.h. (t_gpgrt_cmp_version): New test. (main): Run new test. Change test for new version number to require a 2 level number. -- We have implementations of very similar functions in all out libs. Thus it makes sense to provide a generic version. This version is actually derived from the ftp-indexer.c we use for the gnupg website (see the gnupg-doc repo). Signed-off-by: Werner Koch <[email protected]>
* gpgrt-config: Prepend PKG_CONFIG_LIBDIR to PKG_CONFIG_PATH.NIIBE Yutaka2018-11-141-8/+23
| | | | | | | | | | | * src/gpgrt-config: Handle empty PKG_CONFIG_LIBDIR config, which should ignore --libdir option. Otherwise, prepend PKG_CONFIG_LIBDIR (instead of appending) to PKG_CONFIG_PATH. -- Suggested-by: Andre Heinecke <[email protected]> Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix typo in the annotation.NIIBE Yutaka2018-11-131-1/+1
| | | | | | * src/init.c [DLL_EXPORT] (DllMain): Fix typo. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpgrt.m4: Don't support --with-*-prefix or SYSROOT.NIIBE Yutaka2018-11-131-52/+4
| | | | | | | | | | | | | * src/gpgrt.m4: Remove old backward compatible support. -- Since this macro gpgrt.m4 has not yet been used by any, we can break now. The gpgrt-config script is for all hosts (switching by --libdir option), it's not switched by --with-*-prefix nor SYSROOT. Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix a typo.NIIBE Yutaka2018-11-071-1/+1
| | | | | | * src/spawn-w32.c (src/spawn-w32.c): Fix to use pid_to_handle. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpgrt-config: Don't support variable reference in --libdir option.NIIBE Yutaka2018-11-023-44/+36
| | | | | | | | | | | | | | | | | * src/gpgrt-config: Simplify --libdir support, remove variable substituion. * src/gpg-error.m4: Expand possible ${prefix}, ${exec_prefix} in libdir. Simplify invocation of gpgrt-config. * src/gpgrt.m4: Likewise. -- The --libdir option for configure can include variable reference like --libdir='${exec_prefix}/lib/x86_64-linux-gnu', and this expression should be expanded (the variable should be substituted) beforehand to determine if there is gpg-error.pc file or not. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error.m4: Emit message when using gpgrt-config.NIIBE Yutaka2018-11-021-0/+2
| | | | | | * src/gpg-error.m4: Add AC_MSG_NOTICE. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error.m4: Find gpgrt_libdir by CC.NIIBE Yutaka2018-11-022-18/+44
| | | | | | | | | | | | | | * src/gpg-error.m4 (gpgrt_libdir): New. Bump the version date. * src/gpgrt.m4: Likewise. -- Locating gpg-error.pc file, when it's not found at target's $libdir, try system libdir defined by CC, assuming CC supports gcc compatible -print-file-name option. GnuPG-bug-id: 4239 Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error.m4: Unset GPGRT_CONFIG when gpgrt-config doesn't work.NIIBE Yutaka2018-11-011-2/+8
| | | | | | * src/gpg-error.m4: Unset GPGRT_CONFIG when gpgrt-config doesn't work. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpgrt-config: It's distributed script.NIIBE Yutaka2018-11-011-1/+2
| | | | | | | | | | | | * src/Makefile.am (dist_bin_SCRIPTS): Add gpgrt-config. (bin_SCRIPTS): Remove gpgrt-config. -- This is the automake thing; Since gpgrt-config is not generated script, we should use dist_bin_SCRIPTS here. Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Remove cruft in w32-estream from olden times.Andre Heinecke2018-10-311-28/+0
| | | | | | | | | | | | | * src/w32-io.c (set_synchronize): Remove. (create_reader, create_writer): No need for set_synchronize. -- The set_synchronize dates back to 2001 at a time when gpgme got the Windows support on WindowsME and Windows2000. Maybe this was required then due to bugs in that old NT or partly NT based Windows versions. Removal similar to the removal in gpgme's w32-io.
* gpgrt-config: Fix typo in the script.NIIBE Yutaka2018-10-311-1/+1
| | | | | | * src/gpgrt-config: Add missing $ for libdir_option. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpgrt-config: Better architecture independent support.NIIBE Yutaka2018-10-295-94/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Don't generate gpgrt-config. * src/gpgrt-config: Rename from gpgrt-config.in. (--prefix, --exec-prefix, --libdir): Use --libdir to determine PKG_CONFIG_LIBDIR. * src/Makefile.am (EXTRA_DIST): Remove gpgrt-config.in. * src/gpg-error-config-test.sh: Fix for path to gpgrt-config. * src/gpg-error.m4: Provide --prefix, --exec-prefix, --libdir option from configure. Don't use CC because we have --libdir. Bump version date. * src/gpgrt.m4: Likewise. -- Considering multilib support as well as multiarch support, it is better to provide the information for PKG_CONFIG_LIBDIR by --libdir directly, instead of CC. Difficulty is that configure allows variable reference like: --libdir='${exec_prefix}/i386-linux' So, it should also support --prefix and --exec_prefix options. Signed-off-by: NIIBE Yutaka <[email protected]>
* b64dec: Fix to use custom memory handlers.Ben Kibbey2018-10-271-2/+2
| | | | | | * src/b64dec.c (_gpgrt_b64dec_finish): Use xfree(). Signed-off-by: Ben Kibbey <[email protected]>
* gpgrt-config: Clean up the implementation.NIIBE Yutaka2018-10-261-25/+38
| | | | | | | | | | | * src/gpgrt-config.in: Fix copyright notice. (--exists): Support new option of pkg-config. (--mt): Relax usage. (--api-version): Support old option. (default_module): New. (usage): Only show pkg-config compatible options. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error.m4: Better backward compatibility support.NIIBE Yutaka2018-10-261-7/+20
| | | | | | | * src/gpg-error.m4: Don't assume newer implementation of gpg-error-config. Use old way when it found old. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Keep old gpg-error-config implementation.NIIBE Yutaka2018-10-253-24/+19
| | | | | | | | | | | | | | | | | * configure.ac: Generate gpgrt-config from gpgrt-config.in. * src/gpgrt-config.in: Rename from src/gpg-error-config-new.in. * src/Makefile.am (bin_SCRIPTS): Add gpgrt-config. (EXTRA_DIST): Add gpgrt-config.in removing gpg-error-config-new.in. (BUILT_SOURCES, CLEANFILES): Remove gpgrt-config. (gpg-error-config): Always copy from gpg-error-config-old. * src/gpg-error-config-test.sh: Follow the rename. -- The gpgrt-config script is new implementation supporting *.pc file, while gpg-error-config keeps old single shell script. Signed-off-by: NIIBE Yutaka <[email protected]>
* build: Set GPGRT_CONFIG in gpg-error.m4.NIIBE Yutaka2018-10-251-4/+17
| | | | | | | | | | | * src/gpg-error.m4: Detect gpgrt-config to set GPGRT_CONFIG. -- Set GPGRT_CONFIG when there is no gpg-error-config or gpg-error-config reports version >= 1.33. Signed-off-by: NIIBE Yutaka <[email protected]>
* build: Update gpg-error.m4 and gpgrt.m4.NIIBE Yutaka2018-10-252-29/+35
| | | | | | | | | | | | | * src/gpg-error.m4: Bump version date. (min_gpg_error_version): Require >= 1.33, if not specified. (gpg_error_config_args): Remove bogus uses. * src/gpgrt.m4: Bump version date. (libgpgrt-prefix): Add support of --with-libgpgrt-prefix option. (gpgrt-config): Search/call gpgrt-config instead of gpg-error-config. (min_gpgrt_version): Require >= 1.33, if not specified. (gpgrt_config_args): Remove bogus uses. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Fix previous commit.NIIBE Yutaka2018-10-241-2/+1
| | | | Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Old gpg-error-config support --modversion.NIIBE Yutaka2018-10-241-0/+1
| | | | | | * src/gpg-error-config.in: Support --modversion. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Get var/attr from the first package.NIIBE Yutaka2018-10-241-2/+5
| | | | | | * src/gpg-error-config-new.in: Only get it from the first. Signed-off-by: NIIBE Yutaka <[email protected]>
* build: Supply CC to invoke gpg-error-config.NIIBE Yutaka2018-10-232-12/+14
| | | | | | | | | | | | * src/gpg-error.m4: Add CC when invoking gpg-error-config. * src/gpgrt.m4: Likewise. -- For standard cross build, the use of --with-libgpg-error-prefix will not be needed, as the script automatically finds the place. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Fix cross build support.NIIBE Yutaka2018-10-231-7/+34
| | | | | | | | | | | | * configure.ac: Fix regexp matching multiarch environment. * src/gpg-error-config-new.in: Support standard cross build. Handle the case where $multiarch != $triplet. -- For standard cross build, use @exec_prefix@/$triplet/lib/pkgconfig. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Support "auto", architecture independent script.NIIBE Yutaka2018-10-221-0/+13
| | | | | | | | | | | | | * configure.ac (pkg_config_libdir): Set it "auto" when it looks multiarch environment. * src/gpg-error-config-new.in: Automatically detects the triplet. -- The triplet detection mechanism is not sufficient. It's up to distributions to apply more changes (in distribution specific way). Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Fix PKG_CONFIG_LIBDIR support.NIIBE Yutaka2018-10-171-2/+2
| | | | | | | | | | | | * configure.ac (pkg_config_libdir): New. * src/gpg-error-config-new.in: Use pkg_config_libdir. -- PKG_CONFIG_LIBDIR is not mere libdir but should include 'pkgconfig'. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Support PKG_CONFIG_LIBDIR.NIIBE Yutaka2018-10-161-1/+1
| | | | | | | | | | | | * src/gpg-error-config-new.in: Use PKG_CONFIG_LIBDIR if specified. -- This change allows a distribution (like Debian) offering <triplet>-gpg-error-config wrapper script which invokes gpg-error-config with host specific PKG_CONFIG_LIBDIR. Signed-off-by: NIIBE Yutaka <[email protected]>
* syscfg: Add support for arm64ilp32Wookey2018-10-122-0/+25
| | | | | | | | | | | * src/syscfg/lock-obj-pub.aarch64-unknown-linux-gnu_ilp32.h: New. * src/Makefile.am (lock_obj_pub): Add it. -- Debian-bug-id: 869605 Co-authored-by: Wookey <[email protected]> Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* gpg-error-config: Fix the place of *.pc (for multilib).NIIBE Yutaka2018-10-102-4/+4
| | | | | | | | | | * src/Makefile.am (pkgconfigdir): It should be under libdir. * src/gpg-error-config-new.in: Likewise. -- Reported-by: Alon Bar-Lev <[email protected]> Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Add PKG_CONFIG_SYSROOT_DIR support.NIIBE Yutaka2018-10-102-2/+34
| | | | | | | | | | | | * src/gpg-error-config-new.in (sysroot): New function. (want_cflags, want_libs): Use sysroot. * src/gpg-error-config-test.sh: Test with PKG_CONFIG_SYSROOT_DIR. -- PKG_CONFIG_SYSROOT_DIR is for cross build. Signed-off-by: NIIBE Yutaka <[email protected]>
* syscfg: Add support for arc-unknown-linux-gnuWerner Koch2018-09-211-1/+2
| | | | | | | | | | * src/mkheader.c (canon_host_triplet): Add to table. -- Note that unknown in the above triplet is actually a wildcard for 4 part triplets. Signed-off-by: Werner Koch <[email protected]>
* core: Make cross building in mkheader more explicit.Werner Koch2018-09-212-2/+15
| | | | | | | | | | | | | | | | | * src/mkheader.c (main): Add option --cross. (write_special): Don't use native in cross mode. * src/Makefile.am (mkheader_opts): New. (gpg-error.h): Add MKHEADER_OPTS. -- The old behaviour was that an existing lock-obj-oub.native.h was preferred over one from syscfg even in cross mode. The Makefile tried to get this right by deleting such a file first but when calling mkheader manually for testing this may have not been done. We now allow (and also use by the Makefile) an option --cross to make this explicit. Signed-off-by: Werner Koch <[email protected]>
* core: Simplify calling convention of mkheader.Werner Koch2018-09-212-26/+41
| | | | | | | | | | | | * src/Makefile.am (gpg-error.h): Remove HOST_OS from mkheader call. * src/mkheader.c (canon_host_triplet): Add return arg r_os. (main): Remove first arg and derive host_os from host_triplet. -- No need to let the caller pass the host_os, we can derive it from the triplet. Signed-off-by: Werner Koch <[email protected]>
* src: Fix portability for echo.NIIBE Yutaka2018-09-201-1/+1
| | | | | | * src/Makefile.am: Use ECHO_N and ECHO_C. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Remove white space for the output by old.NIIBE Yutaka2018-09-201-8/+8
| | | | | | | | | * src/gpg-error-config-test.sh: Remove white spaces at the end or at the beginning. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Use expr to remove var in expression.NIIBE Yutaka2018-09-201-1/+1
| | | | | | | | | | | * src/gpg-error-config-new.in (remove_var_expr): Use expr. -- For OpenBSD's sh, it results "bad substitusion". Now, we use expr. Tested on OpenBSD 6.2. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Fix a variable name for zsh.NIIBE Yutaka2018-09-201-7/+7
| | | | | | | | | | * src/gpg-error-config-new.in (module_list): Rename from modules. -- For ZSH, "modules" is built-in variable name. Avoid such a use. Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Don't use local variables.NIIBE Yutaka2018-09-201-136/+137
| | | | | | | | | | | | * src/gpg-error-config-new.in: Use global variables only. -- Since Korn Shell requires different syntax for function to declare local variables, and some OS use Korn Shell as /bin/sh, avoid non-portable use of "local". Signed-off-by: NIIBE Yutaka <[email protected]>
* gpg-error-config: Avoid more space char.NIIBE Yutaka2018-09-201-5/+5
| | | | | | * src/gpg-error-config-new.in: Don't put more space. Signed-off-by: NIIBE Yutaka <[email protected]>