core: Handle NULL xattrs in packfile generation, throw error on invalid mode

This commit is contained in:
Colin Walters 2011-12-04 13:11:21 -05:00
parent 56e0f231b5
commit 45addeadf0
1 changed files with 6 additions and 2 deletions

View File

@ -584,7 +584,7 @@ ostree_pack_file_for_input (GOutputStream *output,
g_variant_builder_add (&pack_builder, "u", GUINT32_TO_BE (gid)); g_variant_builder_add (&pack_builder, "u", GUINT32_TO_BE (gid));
g_variant_builder_add (&pack_builder, "u", GUINT32_TO_BE (mode)); g_variant_builder_add (&pack_builder, "u", GUINT32_TO_BE (mode));
g_variant_builder_add (&pack_builder, "@a(ayay)", xattrs); g_variant_builder_add (&pack_builder, "@a(ayay)", xattrs ? xattrs : g_variant_new_array (G_VARIANT_TYPE ("(ayay)"), NULL, 0));
if (S_ISREG (mode)) if (S_ISREG (mode))
{ {
@ -605,7 +605,11 @@ ostree_pack_file_for_input (GOutputStream *output,
object_size = 0; object_size = 0;
} }
else else
g_assert_not_reached (); {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Invalid mode %u", mode);
goto out;
}
g_variant_builder_add (&pack_builder, "t", GUINT64_TO_BE (object_size)); g_variant_builder_add (&pack_builder, "t", GUINT64_TO_BE (object_size));
pack_variant = g_variant_builder_end (&pack_builder); pack_variant = g_variant_builder_end (&pack_builder);