1. 12 Jul, 2020 15 commits
  2. 09 Jul, 2020 3 commits
  3. 02 Jul, 2020 1 commit
  4. 01 Jul, 2020 3 commits
  5. 30 Jun, 2020 3 commits
    • Make NTLMClient Memory and UndefinedBehavior Sanitizer-clean · 7c964416
      This change makes the code pass the libgit2 tests cleanly when
      MSan/UBSan are enabled. Notably:
      
      * Changes malloc/memset combos into calloc for easier auditing.
      * Makes `write_buf` return early if the buffer length is empty to avoid
        arithmetic with NULL pointers (which UBSan does not like).
      * Initializes a few arrays that were sometimes being read before being
        written to.
      lhchavez committed
    • Make the tests pass cleanly with MemorySanitizer · 3a197ea7
      This change:
      
      * Initializes a few variables that were being read before being
        initialized.
      * Includes https://github.com/madler/zlib/pull/393. As such,
        it only works reliably with `-DUSE_BUNDLED_ZLIB=ON`.
      lhchavez committed
    • Make the tests run cleanly under UndefinedBehaviorSanitizer · d0656ac8
      This change makes the tests run cleanly under
      `-fsanitize=undefined,nullability` and comprises of:
      
      * Avoids some arithmetic with NULL pointers (which UBSan does not like).
      * Avoids an overflow in a shift, due to an uint8_t being implicitly
        converted to a signed 32-bit signed integer after being shifted by a
        32-bit signed integer.
      * Avoids a unaligned read in libgit2.
      * Ignores unaligned reads in the SHA1 library, since it only happens on
        Intel processors, where it is _still_ undefined behavior, but the
        semantics are moderately well-understood.
      
      Of notable omission is `-fsanitize=integer`, since there are lots of
      warnings in zlib and the SHA1 library which probably don't make sense to
      fix and I could not figure out how to silence easily. libgit2 itself
      also has ~100s of warnings which are mostly innocuous (e.g. use of enum
      constants that only fit on an `uint32_t`, but there is no way to do that
      in a simple fashion because the data type chosen for enumerated types is
      implementation-defined), and investigating whether there are worrying
      warnings would need reducing the noise significantly.
      lhchavez committed
  6. 27 Jun, 2020 1 commit
  7. 26 Jun, 2020 1 commit
    • Review feedback · eab2b044
      * Change the default of the file limit to 0 (unlimited).
      * Changed the heuristic to close files to be the file that contains the
        least-recently-used window such that the window is the
        most-recently-used in the file, and the file does not have in-use
        windows.
      * Parameterized the filelimit test to check for a limit of 1 and 100
        open windows.
      lhchavez committed
  8. 23 Jun, 2020 1 commit
  9. 21 Jun, 2020 1 commit
    • mwindow: set limit on number of open files · 9679df57
      There are some cases in which repositories accrue a large number of
      packfiles. The existing mwindow limit applies only to the total size of
      mmap'd files, not on their number. This leads to a situation in which
      having lots of small packfiles could exhaust the allowed number of open
      files, particularly on macOS, where the default ulimit is very low
      (256).
      
      This change adds a new configuration parameter
      (GIT_OPT_SET_MWINDOW_FILE_LIMIT) that sets the maximum number of open
      packfiles, with a default of 128. This is low enough so that even macOS
      users should not hit it during normal use.
      
      Based on PR #5386, originally written by @josharian.
      
      Fixes: #2758
      lhchavez committed
  10. 17 Jun, 2020 5 commits
  11. 16 Jun, 2020 2 commits
    • Merge pull request #5550 from libgit2/ethomson/github_actions · d60bf002
      Introduce CI with GitHub Actions
      Edward Thomson committed
    • Introduce CI with GitHub Actions · 47fb33ba
      Add CI using GitHub Actions and GitHub Packages:
      
      * This moves our Linux build containers into GitHub Packages; we will
        identify the most recent commit that updated the docker descriptions,
        and then look for a docker image in libgit2's GitHub Packages registry
        for a container with the tag corresponding to that description.  If
        there is not one, we will build the container and then push it to
        GitHub Packages.
      
      * We no longer need to manage authentication with our own credentials or
        PAT tokens.  GitHub Actions provides a GITHUB_TOKEN that can publish
        artifacts, packages and commits to our repository within a workflow
        run.
      
      * We will use a matrix to build our various CI steps.  This allows us
        to keep configuration in a single place without multiple YAML files.
      Edward Thomson committed
  12. 13 Jun, 2020 1 commit
  13. 12 Jun, 2020 1 commit
  14. 11 Jun, 2020 1 commit
  15. 10 Jun, 2020 1 commit