• J
    xdiff: clamp function context indices in post-image · b777f3fd
    Jeff King 提交于
    After finding a function line for --function-context in the pre-image,
    xdl_emit_diff() calculates the equivalent line in the post-image.  It
    assumes that the lines between changes are the same on both sides.  If
    the option --ignore-blank-lines was also given then this is not
    necessarily true.
    
    Clamp the calculation results for start and end of the function context
    to prevent out-of-bounds array accesses.
    
    Note that this _just_ fixes the case where our mismatch sends us off the
    beginning of the file. There are likely other cases where our assumption
    causes us to go to the wrong line within the file. Nobody has developed
    a test case yet, and the ultimate fix is likely more complicated than
    this patch. But this at least prevents a segfault in the meantime.
    
    Credit for finding the bug goes to "Liu Wei of Tencent Security Xuanwu
    Lab".
    Reported-by: N刘炜 <lw17qhdz@gmail.com>
    Helped-by: NRené Scharfe <l.s.r@web.de>
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    b777f3fd
xemit.c 7.6 KB