• S
    Fix possible coredump with fast-import --import-marks · aac65ed1
    Shawn O. Pearce 提交于
    When e8438420 allowed us to reload
    the marks table on subsequent runs of fast-import we really broke
    things, as we set pack_id to MAX_PACK_ID for any objects we imported
    into the marks table.  Creating a branch from that mark should fail
    as we attempt to read the object through a non-existant packed_git
    pointer.  Instead we have to use the normal Git object system to
    locate the older commit, as we ourselves do not have a reference
    to the packed_git it resides in.
    
    This bug only occurred because t9300 was not complete enough.
    When we added the --import-marks feature we didn't actually test
    its implementation enough to verify the function worked as intended.
    I have corrected that, and included the changes as part of this fix.
    Prior versions of fast-import fail the new test(s); this commit
    allows them to pass.
    
    Credit for this bug find goes to Simon Hausmann <simon@lst.de> as
    he recently identified a similiar bug in the tree lazy-loading path.
    Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
    aac65ed1
fast-import.c 51.4 KB