• Johannes Schindelin's avatar
    fsck_object(): allow passing object data separately from the object itself · 90a398bb
    Johannes Schindelin authored
    When fsck'ing an incoming pack, we need to fsck objects that cannot be
    read via read_sha1_file() because they are not local yet (and might even
    be rejected if transfer.fsckobjects is set to 'true').
    
    For commits, there is a hack in place: we basically cache commit
    objects' buffers anyway, but the same is not true, say, for tag objects.
    
    By refactoring fsck_object() to take the object buffer and size as
    optional arguments -- optional, because we still fall back to the
    previous method to look at the cached commit objects if the caller
    passes NULL -- we prepare the machinery for the upcoming handling of tag
    objects.
    
    The assumption that such buffers are inherently NUL terminated is now
    wrong, of course, hence we pass the size of the buffer so that we can
    add a sanity check later, to prevent running past the end of the buffer.
    Signed-off-by: Johannes Schindelin's avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    90a398bb
fsck.h 1.14 KB