1. 14 Nov, 2016 35 commits
  2. 11 Nov, 2016 3 commits
    • git_repository_open_ext: fix handling of $GIT_NAMESPACE · c9e967a1
      The existing code would set a namespace of "" (empty string) with
      GIT_NAMESPACE unset.  In a repository where refs/heads/namespaces/
      exists, that can produce incorrect results.  Detect that case and avoid
      setting the namespace at all.
      
      Since that makes the last assignment to error conditional, and the
      previous assignment can potentially get GIT_ENOTFOUND, set error to 0
      explicitly to prevent the call from incorrectly failing with
      GIT_ENOTFOUND.
      Josh Triplett committed
    • curl_stream: check for -1 after CURLINFO_LASTSOCKET · 5ca75fd5
      We're recently trying to upgrade to the current master of libgit2
      in Cargo but we're unfortunately hitting a segfault in one of our
      tests. This particular test is just a small smoke test that https
      works (e.g. it's configured in libgit2). It attempts to clone
      from a URL which simply immediately drops connections after
      they're accepted (e.g. terminate abnormally). We expect to see a
      standard error from libgit2 but unfortunately we're seeing a
      segfault.
      
      This segfault is happening inside of the `wait_for` function of
      `curl_stream.c` at the line `FD_SET(fd, &errfd)` because `fd` is
      -1. This ends up doing an out-of-bounds array access that faults
      the program. I tracked back to where this -1 came from to the
      line here (returned by `CURLINFO_LASTSOCKET`) and added a check
      to return an error.
      Alex Crichton committed
  3. 04 Nov, 2016 2 commits