return FALSE;
}
+
+// Output a friendly message based on an errno for common cases
+static const char *
+composefs_error_message (int errsv)
+{
+ switch (errsv)
+ {
+ case ENOVERITY:
+ return "fsverity not enabled on composefs image";
+ case EWRONGVERITY:
+ return "Wrong fsverity digest in composefs image";
+ case ENOSIGNATURE:
+ return "Missing signature for fsverity in composefs image";
+ default:
+ return strerror (errsv);
+ }
+}
+
#endif
typedef struct
else
{
int errsv = errno;
- const char *errmsg;
- switch (errsv)
- {
- case ENOVERITY:
- errmsg = "fsverity not enabled on composefs image";
- break;
- case EWRONGVERITY:
- errmsg = "Wrong fsverity digest in composefs image";
- break;
- case ENOSIGNATURE:
- errmsg = "Missing signature for fsverity in composefs image";
- break;
- default:
- errmsg = strerror (errno);
- break;
- }
- if (composefs_config->enabled == OT_TRISTATE_MAYBE)
+ g_assert (composefs_config->enabled != OT_TRISTATE_NO);
+ if (composefs_config->enabled == OT_TRISTATE_MAYBE && errsv == ENOENT)
{
- g_print ("composefs: optional support failed: %s\n", errmsg);
+ g_print ("composefs: No image present\n");
}
else
{
- g_assert (composefs_config->enabled == OT_TRISTATE_YES);
+ const char *errmsg = composefs_error_message (errsv);
errx (EXIT_FAILURE, "composefs: failed to mount: %s", errmsg);
}
}