1. 10 Jun, 2017 1 commit
  2. 08 Jun, 2017 1 commit
  3. 02 May, 2017 2 commits
  4. 17 Apr, 2017 1 commit
  5. 01 Mar, 2017 1 commit
  6. 13 Feb, 2017 1 commit
    • repository: use `git_repository_item_path` · c5f3da96
      The recent introduction of the commondir variable of a repository
      requires callers to distinguish whether their files are part of
      the dot-git directory or the common directory shared between
      multpile worktrees. In order to take the burden from callers and
      unify knowledge on which files reside where, the
      `git_repository_item_path` function has been introduced which
      encapsulate this knowledge.
      
      Modify most existing callers of `git_repository_path` to use
      `git_repository_item_path` instead, thus making them implicitly
      aware of the common directory.
      Patrick Steinhardt committed
  7. 10 Feb, 2017 1 commit
  8. 06 Feb, 2017 2 commits
  9. 27 Jan, 2017 1 commit
  10. 21 Jan, 2017 1 commit
  11. 16 Jan, 2017 1 commit
  12. 06 Jan, 2017 3 commits
  13. 29 Dec, 2016 1 commit
  14. 20 Dec, 2016 1 commit
  15. 12 Dec, 2016 2 commits
  16. 02 Nov, 2016 2 commits
    • transports: smart: abort receiving packets on end of stream · 62494bf2
      When trying to receive packets from the remote, we loop until
      either an error distinct to `GIT_EBUFS` occurs or until we
      successfully parsed the packet. This does not honor the case
      where we are looping over an already closed socket which has no
      more data, leaving us in an infinite loop if we got a bogus
      packet size or if the remote hang up.
      
      Fix the issue by returning `GIT_EEOF` when we cannot read data
      from the socket anymore.
      Patrick Steinhardt committed
    • transports: smart: abort ref announcement on early end of stream · 61530c49
      When reading a server's reference announcements via the smart
      protocol, we expect the server to send multiple flushes before
      the protocol is finished. If we fail to receive new data from the
      socket, we will only return an end of stream error if we have not
      seen any flush yet.
      
      This logic is flawed in that we may run into an infinite loop
      when receiving a server's reference announcement with a bogus
      flush packet. E.g. assume the last flushing package is changed to
      not be '0000' but instead any other value. In this case, we will
      still await one more flush package and ignore the fact that we
      are not receiving any data from the socket, causing an infinite
      loop.
      
      Fix the issue by always returning `GIT_EEOF` if the socket
      indicates an end of stream.
      Patrick Steinhardt committed
  17. 17 Aug, 2016 2 commits
  18. 06 Jul, 2016 1 commit
  19. 19 Jun, 2016 1 commit
  20. 07 Jun, 2016 2 commits
    • transports: smart: fix potential invalid memory dereferences · 7d02019a
      When we receive a packet of exactly four bytes encoding its
      length as those four bytes it can be treated as an empty line.
      While it is not really specified how those empty lines should be
      treated, we currently ignore them and do not return an error when
      trying to parse it but simply advance the data pointer.
      
      Callers invoking `git_pkt_parse_line` are currently not prepared
      to handle this case as they do not explicitly check this case.
      While they could always reset the passed out-pointer to `NULL`
      before calling `git_pkt_parse_line` and determine if the pointer
      has been set afterwards, it makes more sense to update
      `git_pkt_parse_line` to set the out-pointer to `NULL` itself when
      it encounters such an empty packet. Like this it is guaranteed
      that there will be no invalid memory references to free'd
      pointers.
      
      As such, the issue has been fixed such that `git_pkt_parse_line`
      always sets the packet out pointer to `NULL` when an empty packet
      has been received and callers check for this condition, skipping
      such packets.
      Patrick Steinhardt committed
  21. 21 Apr, 2016 1 commit
  22. 19 Apr, 2016 6 commits
  23. 08 Mar, 2016 1 commit
  24. 03 Mar, 2016 2 commits
  25. 23 Feb, 2016 2 commits