From b0e7b26921a7d6a6d5aa0295f91cfb9725d66b4c Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 13 Dec 2017 12:51:59 +0000 Subject: [PATCH] ostree/fsck: Handle refspecs from ostree_repo_list_refs() It seems ostree_repo_list_refs() can return refspecs as hash table keys, as well as just ref names. Handle that by parsing them before trying to use them as ref names. Signed-off-by: Philip Withnall Closes: #1347 Approved by: cgwalters --- src/ostree/ot-builtin-fsck.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ostree/ot-builtin-fsck.c b/src/ostree/ot-builtin-fsck.c index 6ebb3c83..6cd9b457 100644 --- a/src/ostree/ot-builtin-fsck.c +++ b/src/ostree/ot-builtin-fsck.c @@ -189,9 +189,16 @@ ostree_builtin_fsck (int argc, char **argv, OstreeCommandInvocation *invocation, gpointer key, value; g_hash_table_iter_init (&hash_iter, all_refs); while (g_hash_table_iter_next (&hash_iter, &key, &value)) - if (!fsck_commit_for_ref (repo, value, NULL, key, - &found_corruption, cancellable, error)) - return FALSE; + { + const char *refspec = key; + const char *checksum = value; + g_autofree char *ref_name = NULL; + if (!ostree_parse_refspec (refspec, NULL, &ref_name, error)) + return FALSE; + if (!fsck_commit_for_ref (repo, checksum, NULL, ref_name, + &found_corruption, cancellable, error)) + return FALSE; + } #ifdef OSTREE_ENABLE_EXPERIMENTAL_API if (!opt_quiet)