[PATCH] delta read
This makes the core code aware of delta objects and undeltafy them as needed. The convention is to use read_sha1_file() to have undeltafication done automatically (most users do that already so this is transparent). If the delta object itself has to be accessed then it must be done through map_sha1_file() and unpack_sha1_file(). In that context mktag.c has been switched to read_sha1_file() as there is no reason to do the full map+unpack manually. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
e99d59ff0b
commit
91d7b8afc2
20
mktag.c
20
mktag.c
@ -25,20 +25,14 @@
|
||||
static int verify_object(unsigned char *sha1, const char *expected_type)
|
||||
{
|
||||
int ret = -1;
|
||||
unsigned long mapsize;
|
||||
void *map = map_sha1_file(sha1, &mapsize);
|
||||
char type[100];
|
||||
unsigned long size;
|
||||
void *buffer = read_sha1_file(sha1, type, &size);
|
||||
|
||||
if (map) {
|
||||
char type[100];
|
||||
unsigned long size;
|
||||
void *buffer = unpack_sha1_file(map, mapsize, type, &size);
|
||||
|
||||
if (buffer) {
|
||||
if (!strcmp(type, expected_type))
|
||||
ret = check_sha1_signature(sha1, buffer, size, type);
|
||||
free(buffer);
|
||||
}
|
||||
munmap(map, mapsize);
|
||||
if (buffer) {
|
||||
if (!strcmp(type, expected_type))
|
||||
ret = check_sha1_signature(sha1, buffer, size, type);
|
||||
free(buffer);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user