1. Sep 02, 2020
  2. Aug 31, 2020
  3. Nov 05, 2019
  4. Oct 29, 2019
  5. Oct 17, 2019
  6. Oct 16, 2019
  7. Jun 04, 2019
    • Reini Urban's avatar
      Release v04062019 3.5.0 · a99a052a
      Reini Urban authored
      See Changelog
      
      Allow for manual definition of HAVE___SYNC_SYNCHRONIZE,
      HAVE__MM_MFENCE, or HAVE__MM_SFENCE if the current compile-time
      probes fail. This really should be put into configure (TODO).
      a99a052a
    • Reini Urban's avatar
      fixes for bad bos compilers (pgcc) · 02bb6a03
      Reini Urban authored
      some compilers have such a bad optimizer, that they cannot get the
      object_size of static vars, like pgcc 17.4 and pgcc 19.4 on linux and
      darwin. (nvidia)
      
      Adjust the tests to detect that limitations.  In many cases we have now 3
      different compiler-dependent results on overflows: msvcrt (different native secapi),
      pgcc (no bos detection) and normal compilers with proper object_size
      compile-time detection.
      02bb6a03
  8. Jun 02, 2019
  9. May 28, 2019
  10. May 25, 2019
  11. Dec 30, 2018
  12. Mar 03, 2018
  13. Mar 02, 2018
  14. Feb 27, 2018
    • Reini Urban's avatar
      speed up memcpy/memset by 2 · c4931730
      Reini Urban authored
      use 64bit copy on 64bit machines, not just 32bit.
      memcpy_s is now as fast as memcpy native, with in overhead
      of -1 to +3%, on clang-4+
      gcc is only 77% slower, not 89%.
      c4931730
  15. Feb 26, 2018
  16. Feb 24, 2018
    • Reini Urban's avatar
      EOVERFLOW for static buffer overflows · b149486b
      Reini Urban authored
      when the compiler knows the object_size (BOS), not ESLEMAX.
      Does not work reliably for constant literal strings at compile-time,
      but at run-time it mostly does.
      
      Note: with -O2 the duplicated error blocks are merged with a simple goto/jmp.
      Maybe we should do it explicitly.
      b149486b
  17. Feb 21, 2018
    • Reini Urban's avatar
      cxx !c99 -Werror strictness · 53b627a0
      Reini Urban authored
      warnings being treated as errors.
      error: suggest a space before ';' or explicit braces around empty body in 'for' statement
      disable -Werror then.
      
      worse is that older g++ (4.3) do not permit
      pragma gcc diagnostic inside functions at all.
      so we add HAVE_CXX to our HAVE_C99 for this.
      53b627a0
    • Reini Urban's avatar
      vsprintf_chk: no errno, analog to sprintf_s · 4895d296
      Reini Urban authored
      4895d296
  18. Feb 17, 2018
  19. Feb 08, 2018
  20. Feb 06, 2018
    • Reini Urban's avatar
      Spectre probe for -mretpoline/-mindirect-branch=thunk-extern · c86bd9ed
      Reini Urban authored
      -mretpoline is currently the clang-7.0 name for Spectre mitigation.
      gcc-7.3/8.1 branches currently use -mindirect-branch=thunk-extern for this.
      The default GNU linker check does not work though, you need llvm lld-7.
      so add -Wl,-z,retpolineplt only where the retpoline spectre option was added.
      Without linker support don't add the cflags neither, but warn.
      It needs lld-7 via LDFLAGS=-fuse-ld=lld-7
      
      There is also a new -Wl,-z,textonly option.
      https://sourceware.org/ml/binutils/2017-11/msg00369.html
      Probe for it also.
      c86bd9ed
  21. Feb 05, 2018
  22. Feb 01, 2018
  23. Jan 31, 2018
  24. Jan 29, 2018
  25. Jan 28, 2018
  26. Jan 23, 2018
    • Reini Urban's avatar
      windows: --disable-shared sets DISABLE_DLLIMPORT · c112b9af
      Reini Urban authored
      and skips the dllexport/dllimport attributes.
      We can now build static-only on windows, which eases debugging
      
      libtool sets the pic_flag -DDLL_EXPORT when building a shared lib on
      windows, so we could have used that instead. But we need it later in test
      executables to see if -lsafec is used at all, or overridden by -lc
      dynamically when using shared libs. So we need it in the runtime config.
      And with a different name.
      c112b9af
  27. Jan 15, 2018
    • Reini Urban's avatar
      New release v15012018 3.2 · e0f580a5
      Reini Urban authored
      - Fixed 32bit Windows wchar conversion functions, by changing wint_t to uint32_t
        types for most internal conversions.
      - Changed 2 public APIs:
        int iswfc(uint32_t wc);
        int towfc_s(wchar_t *restrict dest, rsize_t dmax, const uint32_t src);
      - Removed ssize_t GNU extension (jeremyhannon)
      - Removed illegal warnings with C++
      - Fixed tests failing with C++
      - Fixed cygwin smokes on Appveyor
      - Workaround broken gcc-4.8 strchr macro
      - Probe for broken strnstr, broken in newlib until Aug 2017.
      - Fixed mingw smokes on Appveyor, adjusted many tests using
        the native sec_api variants which do deviate from safeclib.
      - Clear dest on empty src with *ncpy_s and *ncat_s: PR #38 (Arjun Gour)
      - More hardening: Add -Wl,-z,noexecstack to AM_LDFLAGS,
        retpoline, textonly not yet.
      e0f580a5
    • Reini Urban's avatar
      fixup PR #38 · ef964a35
      Reini Urban authored
      Update run-time constraint violation checks.
      
      handle_error already clears *dest.
      clearing dest + invoke_safe_str_constraint_handler == handle_error()
      
      add test cases.
      ef964a35
    • Reini Urban's avatar
      ChangeLog for 3.2 · a8a75a6a
      Reini Urban authored
      prepare 3.2 release
      a8a75a6a