got_pack_get_object_size() -> got_pack_get_max_delta_object_size()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
diff --git a/lib/got_lib_pack.h b/lib/got_lib_pack.h
index 8276351..f1f7654 100644
--- a/lib/got_lib_pack.h
+++ b/lib/got_lib_pack.h
@@ -164,7 +164,7 @@ int got_packidx_get_object_idx(struct got_packidx *, struct got_object_id *);
const struct got_error *got_packfile_open_object(struct got_object **,
struct got_pack *, struct got_packidx *, int, struct got_object_id *);
-const struct got_error *got_pack_get_object_size(uint64_t *,
+const struct got_error *got_pack_get_max_delta_object_size(uint64_t *,
struct got_object *);
const struct got_error *got_packfile_extract_object(struct got_pack *,
struct got_object *, FILE *, FILE *, FILE *);
diff --git a/lib/pack.c b/lib/pack.c
index 9a2d1c2..b0b1b6f 100644
--- a/lib/pack.c
+++ b/lib/pack.c
@@ -987,8 +987,11 @@ get_delta_chain_max_size(uint64_t *max_size, struct got_delta_chain *deltas)
}
const struct got_error *
-got_pack_get_object_size(uint64_t *size, struct got_object *obj)
+got_pack_get_max_delta_object_size(uint64_t *size, struct got_object *obj)
{
+ if ((obj->flags & GOT_OBJ_FLAG_DELTIFIED) == 0)
+ return got_error(GOT_ERR_OBJ_TYPE);
+
return get_delta_chain_max_size(size, &obj->deltas);
}
diff --git a/libexec/got-read-pack/got-read-pack.c b/libexec/got-read-pack/got-read-pack.c
index 1d422ec..ba5d0a5 100644
--- a/libexec/got-read-pack/got-read-pack.c
+++ b/libexec/got-read-pack/got-read-pack.c
@@ -246,7 +246,7 @@ blob_request(struct imsg *imsg, struct imsgbuf *ibuf, struct got_pack *pack,
goto done;
if (obj->flags & GOT_OBJ_FLAG_DELTIFIED) {
- err = got_pack_get_object_size(&blob_size, obj);
+ err = got_pack_get_max_delta_object_size(&blob_size, obj);
if (err)
goto done;
} else