1. 20 Jun, 2016 8 commits
  2. 17 Jun, 2016 1 commit
  3. 16 Jun, 2016 1 commit
  4. 15 Jun, 2016 2 commits
  5. 14 Jun, 2016 4 commits
  6. 07 Jun, 2016 5 commits
    • global: clean up crt only after freeing tls data · 432af52b
      The thread local storage is used to hold some global state that
      is dynamically allocated and should be freed upon exit. On
      Windows, we clean up the C run-time right after execution of
      registered shutdown callbacks and before cleaning up the TLS.
      
      When we clean up the CRT, we also cause it to analyze for memory
      leaks. As we did not free the TLS yet this will lead to false
      positives.
      
      Fix the issue by first freeing the TLS and cleaning up the CRT
      only afterwards.
      Patrick Steinhardt committed
    • index: fix NULL pointer access in index_remove_entry · 13deb874
      When removing an entry from the index by its position, we first
      retrieve the position from the index's entries and then try to
      remove the retrieved value from the index map with
      `DELETE_IN_MAP`. When `index_remove_entry` returns `NULL` we try
      to feed it into the `DELETE_IN_MAP` macro, which will
      unconditionally call `idxentry_hash` and then happily dereference
      the `NULL` entry pointer.
      
      Fix the issue by not passing a `NULL` entry into `DELETE_IN_MAP`.
      Patrick Steinhardt committed
    • 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
  7. 02 Jun, 2016 8 commits
  8. 01 Jun, 2016 7 commits
  9. 27 May, 2016 2 commits
  10. 26 May, 2016 2 commits