• Show log

    Commit

  • Hash : 223e7e43
    Author : Patrick Steinhardt
    Date : 2019-10-19T15:42:54

    patch_parse: reject patches with multiple old/new paths
    
    It's currently possible to have patches with multiple old path name
    headers. As we didn't check for this case, this resulted in a memory
    leak when overwriting the old old path with the new old path because we
    simply discarded the old pointer.
    
    Instead of fixing this by free'ing the old pointer, we should reject
    such patches altogether. It doesn't make any sense for the "---" or
    "+++" markers to occur multiple times within a patch n the first place.
    This also implicitly fixes the memory leak.
    

  • 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