diff --git a/qemu-img.c b/qemu-img.c
index 62ea27eae5..d118da5c2f 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1455,7 +1455,7 @@ static int img_convert(int argc, char **argv)
     ret = bdrv_parse_cache_flags(cache, &flags);
     if (ret < 0) {
         error_report("Invalid cache option: %s", cache);
-        return -1;
+        goto out;
     }
 
     out_bs = bdrv_new_open("target", out_filename, out_fmt, flags, true, quiet);