summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--girepository/girmodule.c3
-rw-r--r--girepository/gthash.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/girepository/girmodule.c b/girepository/girmodule.c
index 05c8987f..e3897c34 100644
--- a/girepository/girmodule.c
+++ b/girepository/girmodule.c
@@ -279,8 +279,9 @@ add_directory_index_section (guint8 *data, GIrModule *module, guint32 *offset2)
alloc_section (data, GI_SECTION_DIRECTORY_INDEX, *offset2);
required_size = _gi_typelib_hash_builder_get_buffer_size (dirindex_builder);
+ required_size = ALIGN_VALUE (required_size, 4);
- new_offset = *offset2 + ALIGN_VALUE (required_size, 4);
+ new_offset = *offset2 + required_size;
data = g_realloc (data, new_offset);
diff --git a/girepository/gthash.c b/girepository/gthash.c
index ecc3b104..831c87e9 100644
--- a/girepository/gthash.c
+++ b/girepository/gthash.c
@@ -158,6 +158,8 @@ _gi_typelib_hash_builder_pack (GITypelibHashBuilder *builder, guint8* mem, guint
g_assert (len >= builder->packed_size);
g_assert ((((unsigned long)mem) & 0x3) == 0);
+ memset (mem, 0, len);
+
*((guint32*) mem) = builder->dirmap_offset;
packed_mem = (guint8*)(mem + sizeof(guint32));
cmph_pack (builder->c, packed_mem);