commit: Give a better error message for unhandled file type
authorColin Walters <walters@verbum.org>
Thu, 10 Oct 2024 12:54:33 +0000 (12:54 +0000)
committerColin Walters <walters@verbum.org>
Thu, 10 Oct 2024 12:54:33 +0000 (12:54 +0000)
xref https://github.com/ostreedev/ostree/issues/3319

It'd be useful to know what file type is being hit here; I believe
this code path should be unreachable.

src/libostree/ostree-repo-commit.c

index 0ee97288d7f7b14b718ead11a8f34a53d08cacc2..17b8a97f4e690114e39e0ab461ccf35588ed5765 100644 (file)
@@ -3173,7 +3173,8 @@ _ostree_repo_commit_modifier_apply (OstreeRepo *self, OstreeRepoCommitModifier *
   if (canonicalize_perms)
     {
       guint mode = g_file_info_get_attribute_uint32 (modified_info, "unix::mode");
-      switch (g_file_info_get_file_type (file_info))
+      GFileType ty = g_file_info_get_file_type (file_info);
+      switch (ty)
         {
         case G_FILE_TYPE_REGULAR:
           /* In particular, we want to squash the s{ug}id bits, but this also
@@ -3188,7 +3189,7 @@ _ostree_repo_commit_modifier_apply (OstreeRepo *self, OstreeRepoCommitModifier *
         case G_FILE_TYPE_SYMBOLIC_LINK:
           break;
         default:
-          g_assert_not_reached ();
+          g_error ("unexpected file type %u", (unsigned)ty);
         }
       g_file_info_set_attribute_uint32 (modified_info, "unix::uid", 0);
       g_file_info_set_attribute_uint32 (modified_info, "unix::gid", 0);