mirror of
https://git.proxmox.com/git/libgit2
synced 2025-06-21 15:07:23 +00:00
Fix for misleading "missing delta bases" error - Fix #2721.
This commit is contained in:
parent
7561f98d6d
commit
ec7e680c6c
@ -671,8 +671,10 @@ static int inject_object(git_indexer *idx, git_oid *id)
|
|||||||
seek_back_trailer(idx);
|
seek_back_trailer(idx);
|
||||||
entry_start = idx->pack->mwf.size;
|
entry_start = idx->pack->mwf.size;
|
||||||
|
|
||||||
if (git_odb_read(&obj, idx->odb, id) < 0)
|
if (git_odb_read(&obj, idx->odb, id) < 0) {
|
||||||
|
giterr_set(GITERR_INDEXER, "missing delta bases");
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
data = git_odb_object_data(obj);
|
data = git_odb_object_data(obj);
|
||||||
len = git_odb_object_size(obj);
|
len = git_odb_object_size(obj);
|
||||||
@ -827,7 +829,6 @@ static int resolve_deltas(git_indexer *idx, git_transfer_progress *stats)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
if (!progressed && (fix_thin_pack(idx, stats) < 0)) {
|
if (!progressed && (fix_thin_pack(idx, stats) < 0)) {
|
||||||
giterr_set(GITERR_INDEXER, "missing delta bases");
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -408,11 +408,14 @@ static int packfile_unpack_header1(
|
|||||||
size = c & 15;
|
size = c & 15;
|
||||||
shift = 4;
|
shift = 4;
|
||||||
while (c & 0x80) {
|
while (c & 0x80) {
|
||||||
if (len <= used)
|
if (len <= used) {
|
||||||
|
giterr_set(GITERR_ODB, "buffer too small");
|
||||||
return GIT_EBUFS;
|
return GIT_EBUFS;
|
||||||
|
}
|
||||||
|
|
||||||
if (bitsizeof(long) <= shift) {
|
if (bitsizeof(long) <= shift) {
|
||||||
*usedp = 0;
|
*usedp = 0;
|
||||||
|
giterr_set(GITERR_ODB, "packfile corrupted");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user