1. 02 Feb, 2018 1 commit
    • sysdir: do not use environment in setuid case · 0967459e
      In order to derive the location of some Git directories, we currently
      use the environment variables $HOME and $XDG_CONFIG_HOME. This might
      prove to be problematic whenever the binary is run with setuid, that is
      when the effective user does not equal the real user. In case the
      environment variables do not get sanitized by the caller, we thus might
      end up using the real user's configuration when doing stuff as the
      effective user.
      
      The fix is to use the passwd entry's directory instead of $HOME in this
      situation. As this might break scenarios where the user explicitly sets
      $HOME to another path, this fix is only applied in case the effective
      user does not equal the real user.
      Patrick Steinhardt committed
  2. 03 Jul, 2017 1 commit
    • Make sure to always include "common.h" first · 0c7f49dd
      Next to including several files, our "common.h" header also declares
      various macros which are then used throughout the project. As such, we
      have to make sure to always include this file first in all
      implementation files. Otherwise, we might encounter problems or even
      silent behavioural differences due to macros or defines not being
      defined as they should be. So in fact, our header and implementation
      files should make sure to always include "common.h" first.
      
      This commit does so by establishing a common include pattern. Header
      files inside of "src" will now always include "common.h" as its first
      other file, separated by a newline from all the other includes to make
      it stand out as special. There are two cases for the implementation
      files. If they do have a matching header file, they will always include
      this one first, leading to "common.h" being transitively included as
      first file. If they do not have a matching header file, they instead
      include "common.h" as first file themselves.
      
      This fixes the outlined problems and will become our standard practice
      for header and source files inside of the "src/" from now on.
      Patrick Steinhardt committed
  3. 23 Mar, 2017 1 commit
    • Introduce `git_sysdir_expand_global_file` · 5135ddaa
      Provide a mechanism for callers to expand the full path of a file in the
      global configuration directory (that is to say, the home directory) even
      if the file doesn't necessarily exist.  This lets callers use their own
      logic for building paths separate from handling file existence.
      Edward Thomson committed
  4. 29 Dec, 2016 1 commit
  5. 18 Dec, 2016 1 commit
  6. 04 Aug, 2016 1 commit
    • sysdir: use the standard `init` pattern · 031d34b7
      Don't try to determine when sysdirs are uninitialized.  Instead, simply
      initialize them all at `git_libgit2_init` time and never try to
      reinitialize, except when consumers explicitly call `git_sysdir_set`.
      
      Looking at the buffer length is especially problematic, since there may
      no appropriate path for that value.  (For example, the Windows-specific
      programdata directory has no value on non-Windows machines.)
      
      Previously we would continually trying to re-lookup these values,
      which could get racy if two different threads are each calling
      `git_sysdir_get` and trying to lookup / clear the value simultaneously.
      Edward Thomson committed
  7. 21 Oct, 2015 1 commit
  8. 02 Jul, 2015 1 commit
  9. 06 May, 2014 1 commit
  10. 02 May, 2014 1 commit
    • Improve handling of fake home directory · 0f603132
      There are a few tests that set up a fake home directory and a
      fake GLOBAL search path so that we can test things in global
      ignore or attribute or config files.  This cleans up that code to
      work more robustly even if there is a test failure.  This also
      fixes some valgrind warnings where scanning search paths for
      separators could end up doing a little bit of sketchy data access
      when coming to the end of search list.
      Russell Belfer committed
  11. 21 Apr, 2014 1 commit
  12. 25 Feb, 2014 1 commit