• Show log

    Commit

  • Hash : 64c612cc
    Author : Johannes Schindelin
    Date : 2019-09-18T15:25:02

    Protect against 8.3 "short name" attacks also on Linux/macOS
    
    The Windows Subsystem for Linux (WSL) is getting increasingly popular,
    in particular because it makes it _so_ easy to run Linux software on
    Windows' files, via the auto-mounted Windows drives (`C:\` is mapped to
    `/mnt/c/`, no need to set that up manually).
    
    Unfortunately, files/directories on the Windows drives can be accessed
    via their _short names_, if that feature is enabled (which it is on the
    `C:` drive by default).
    
    Which means that we have to safeguard even our Linux users against the
    short name attacks.
    
    Further, while the default options of CIFS/SMB-mounts seem to disallow
    accessing files on network shares via their short names on Linux/macOS,
    it _is_ possible to do so with the right options.
    
    So let's just safe-guard against short name attacks _everywhere_.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    

  • README.md

  • Writing Clar tests for libgit2

    For information on the Clar testing framework and a detailed introduction please visit:

    https://github.com/vmg/clar

    • Write your modules and tests. Use good, meaningful names.

    • Make sure you actually build the tests by setting:

        cmake -DBUILD_CLAR=ON build/
    • Test:

        ./build/libgit2_clar
    • Make sure everything is fine.

    • Send your pull request. That’s it.

    Memory leak checks

    These are automatically run as part of CI, but if you want to check locally:

    Linux

    Uses valgrind:

    $ cmake -DBUILD_CLAR=ON -DVALGRIND=ON ..
    $ cmake --build .
    $ valgrind --leak-check=full --show-reachable=yes --num-callers=50 --suppressions=../libgit2_clar.supp \
      ./libgit2_clar

    macOS

    Uses leaks, which requires XCode installed:

    $ MallocStackLogging=1 MallocScribble=1 MallocLogFile=/dev/null CLAR_AT_EXIT="leaks -quiet \$PPID" \
      ./libgit2_clar