1. 03 Jan, 2019 2 commits
  2. 15 Dec, 2018 3 commits
  3. 14 Dec, 2018 10 commits
  4. 12 Dec, 2018 4 commits
  5. 07 Dec, 2018 3 commits
  6. 06 Dec, 2018 1 commit
    • Werner Koch's avatar
      logging: Escape controls in string arguments of log_ functions. · b7fae45c
      Werner Koch authored
      
      
      * 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: default avatarWerner Koch <wk@gnupg.org>
      b7fae45c
  7. 05 Dec, 2018 3 commits
  8. 26 Nov, 2018 2 commits
    • Werner Koch's avatar
      core: New functions gpgrt_fprintf_sf anf gpgrt_fprintf_sf_unlocked. · bd8668c1
      Werner Koch authored
      
      
      * 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: default avatarWerner Koch <wk@gnupg.org>
      bd8668c1
    • Werner Koch's avatar
      core: Add a limited version of gpgrt_ftruncate. · ffb49b72
      Werner Koch authored
      
      
      * 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: default avatarWerner Koch <wk@gnupg.org>
      ffb49b72
  9. 15 Nov, 2018 1 commit
    • Werner Koch's avatar
      core: New API gpgrt_cmp_version · a5d4a4b3
      Werner Koch authored
      
      
      * 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: default avatarWerner Koch <wk@gnupg.org>
      a5d4a4b3
  10. 14 Nov, 2018 1 commit
  11. 13 Nov, 2018 2 commits
  12. 07 Nov, 2018 1 commit
  13. 02 Nov, 2018 3 commits
  14. 01 Nov, 2018 2 commits
  15. 31 Oct, 2018 2 commits