• Show log

    Commit

  • Hash : 0a0cd67d
    Author : Iliyas Jorio
    Date : 2022-02-08T20:18:15

    diff_file: fix crash if size of diffed file changes in workdir
    
    "diff_file_content_load_workdir_file()" maps a file from the workdir
    into memory. It uses git_diff_file.size to determine the size of the
    memory mapping.
    
    If this value goes stale, the mmaped area would be sized incorrectly.
    This could occur if an external program changes the contents of the
    file after libgit2 had cached its size. This used to segfault if the
    file becomes smaller (mmaped area too large).
    
    This patch causes diff_file_content_load_workdir_file to fail without
    crashing if it detects that the file size has changed.