Skip to content

Commit 89bd4dd

Browse files
committed
diff_generate: validate oid file size
Index entries are 32 bit unsigned ints, not `size_t`s.
1 parent fd9d4e2 commit 89bd4dd

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/diff_generate.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -564,14 +564,14 @@ int git_diff__oid_for_file(
564564
{
565565
git_index_entry entry;
566566

567-
if (!git__is_sizet(size)) {
567+
if (size < 0 || size > UINT32_MAX) {
568568
git_error_set(GIT_ERROR_NOMEMORY, "file size overflow (for 32-bits) on '%s'", path);
569569
return -1;
570570
}
571571

572572
memset(&entry, 0, sizeof(entry));
573573
entry.mode = mode;
574-
entry.file_size = (size_t)size;
574+
entry.file_size = (uint32_t)size;
575575
entry.path = (char *)path;
576576

577577
return git_diff__oid_for_entry(out, diff, &entry, mode, NULL);

0 commit comments

Comments
 (0)