Skip to content
  • Eric Sunshine's avatar
    blame: fix -L bounds checking bug · 164a9cf4
    Eric Sunshine authored and Junio C Hamano's avatar Junio C Hamano committed
    Since inception, -LX,Y has correctly reported an out-of-range error when
    Y is beyond end of file, however, X was not checked, and an out-of-range
    X would cause a crash.  92f9e273
    
     (blame: prevent a segv when -L given
    start > EOF; 2010-02-08) attempted to rectify this shortcoming but has
    its own off-by-one error which allows X to extend one line past end of
    file.  For example, given a file with 5 lines:
    
      git blame -L5 foo  # OK, blames line 5
      git blame -L6 foo  # accepted, no error, no output, huh?
      git blame -L7 foo  # error "fatal: file foo has only 5 lines"
    
    Fix this bug.
    
    In order to avoid regressing "blame foo" when foo is an empty file, the
    fix is slightly more complicated than changing '<' to '<='.
    
    Signed-off-by: default avatarEric Sunshine <sunshine@sunshineco.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    164a9cf4