mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-29 12:24:11 +00:00
commit
f538515079
12
src/index.c
12
src/index.c
@ -1409,14 +1409,18 @@ static int read_reuc(git_index *index, const char *buffer, size_t size)
|
|||||||
|
|
||||||
if (git__strtol32(&tmp, buffer, &endptr, 8) < 0 ||
|
if (git__strtol32(&tmp, buffer, &endptr, 8) < 0 ||
|
||||||
!endptr || endptr == buffer || *endptr ||
|
!endptr || endptr == buffer || *endptr ||
|
||||||
(unsigned)tmp > UINT_MAX)
|
(unsigned)tmp > UINT_MAX) {
|
||||||
|
index_entry_reuc_free(lost);
|
||||||
return index_error_invalid("reading reuc entry stage");
|
return index_error_invalid("reading reuc entry stage");
|
||||||
|
}
|
||||||
|
|
||||||
lost->mode[i] = tmp;
|
lost->mode[i] = tmp;
|
||||||
|
|
||||||
len = (endptr + 1) - buffer;
|
len = (endptr + 1) - buffer;
|
||||||
if (size <= len)
|
if (size <= len) {
|
||||||
|
index_entry_reuc_free(lost);
|
||||||
return index_error_invalid("reading reuc entry stage");
|
return index_error_invalid("reading reuc entry stage");
|
||||||
|
}
|
||||||
|
|
||||||
size -= len;
|
size -= len;
|
||||||
buffer += len;
|
buffer += len;
|
||||||
@ -1426,8 +1430,10 @@ static int read_reuc(git_index *index, const char *buffer, size_t size)
|
|||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
if (!lost->mode[i])
|
if (!lost->mode[i])
|
||||||
continue;
|
continue;
|
||||||
if (size < 20)
|
if (size < 20) {
|
||||||
|
index_entry_reuc_free(lost);
|
||||||
return index_error_invalid("reading reuc entry oid");
|
return index_error_invalid("reading reuc entry oid");
|
||||||
|
}
|
||||||
|
|
||||||
git_oid_fromraw(&lost->oid[i], (const unsigned char *) buffer);
|
git_oid_fromraw(&lost->oid[i], (const unsigned char *) buffer);
|
||||||
size -= 20;
|
size -= 20;
|
||||||
|
@ -325,7 +325,7 @@ static int hash_and_save(git_indexer_stream *idx, git_rawobj *obj, git_off_t ent
|
|||||||
/* FIXME: Parse the object instead of hashing it */
|
/* FIXME: Parse the object instead of hashing it */
|
||||||
if (git_odb__hashobj(&oid, obj) < 0) {
|
if (git_odb__hashobj(&oid, obj) < 0) {
|
||||||
giterr_set(GITERR_INDEXER, "Failed to hash object");
|
giterr_set(GITERR_INDEXER, "Failed to hash object");
|
||||||
return -1;
|
goto on_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
pentry = git__calloc(1, sizeof(struct git_pack_entry));
|
pentry = git__calloc(1, sizeof(struct git_pack_entry));
|
||||||
|
@ -1902,8 +1902,10 @@ static int write_merge_msg(
|
|||||||
entries = git__calloc(heads_len, sizeof(struct merge_msg_entry));
|
entries = git__calloc(heads_len, sizeof(struct merge_msg_entry));
|
||||||
GITERR_CHECK_ALLOC(entries);
|
GITERR_CHECK_ALLOC(entries);
|
||||||
|
|
||||||
if (git_vector_init(&matching, heads_len, NULL) < 0)
|
if (git_vector_init(&matching, heads_len, NULL) < 0) {
|
||||||
|
git__free(entries);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < heads_len; i++)
|
for (i = 0; i < heads_len; i++)
|
||||||
entries[i].merge_head = heads[i];
|
entries[i].merge_head = heads[i];
|
||||||
|
@ -232,6 +232,7 @@ int git_odb__hashlink(git_oid *out, const char *path)
|
|||||||
link_data[size] = '\0';
|
link_data[size] = '\0';
|
||||||
if (read_len != (ssize_t)size) {
|
if (read_len != (ssize_t)size) {
|
||||||
giterr_set(GITERR_OS, "Failed to read symlink data for '%s'", path);
|
giterr_set(GITERR_OS, "Failed to read symlink data for '%s'", path);
|
||||||
|
git__free(link_data);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -505,8 +505,10 @@ static git_pobject **compute_write_order(git_packbuilder *pb)
|
|||||||
/*
|
/*
|
||||||
* Mark objects that are at the tip of tags.
|
* Mark objects that are at the tip of tags.
|
||||||
*/
|
*/
|
||||||
if (git_tag_foreach(pb->repo, &cb_tag_foreach, pb) < 0)
|
if (git_tag_foreach(pb->repo, &cb_tag_foreach, pb) < 0) {
|
||||||
|
git__free(wo);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Give the objects in the original recency order until
|
* Give the objects in the original recency order until
|
||||||
|
@ -329,8 +329,10 @@ static int pack_index_open(struct git_pack_file *p)
|
|||||||
memcpy(idx_name, p->pack_name, base_len);
|
memcpy(idx_name, p->pack_name, base_len);
|
||||||
memcpy(idx_name + base_len, ".idx", sizeof(".idx"));
|
memcpy(idx_name + base_len, ".idx", sizeof(".idx"));
|
||||||
|
|
||||||
if ((error = git_mutex_lock(&p->lock)) < 0)
|
if ((error = git_mutex_lock(&p->lock)) < 0) {
|
||||||
|
git__free(idx_name);
|
||||||
return error;
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
if (p->index_version == -1)
|
if (p->index_version == -1)
|
||||||
error = pack_index_check(idx_name, p);
|
error = pack_index_check(idx_name, p);
|
||||||
|
@ -1500,12 +1500,12 @@ int git_repository_is_empty(git_repository *repo)
|
|||||||
if (git_reference_lookup(&head, repo, GIT_HEAD_FILE) < 0)
|
if (git_reference_lookup(&head, repo, GIT_HEAD_FILE) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (!(error = git_reference_type(head) == GIT_REF_SYMBOLIC))
|
if (!((error = git_reference_type(head)) == GIT_REF_SYMBOLIC))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (!(error = strcmp(
|
if (!(error = (strcmp(
|
||||||
git_reference_symbolic_target(head),
|
git_reference_symbolic_target(head),
|
||||||
GIT_REFS_HEADS_DIR "master") == 0))
|
GIT_REFS_HEADS_DIR "master") == 0)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
error = repo_contains_no_reference(repo);
|
error = repo_contains_no_reference(repo);
|
||||||
|
Loading…
Reference in New Issue
Block a user