fprintf(stderr, "Failed to probe partition entry UUID %s: %s\n", p, strerror(-r));
goto fail;
}
- sd_id128_from_string(v, uuid);
+
+ r = sd_id128_from_string(v, uuid);
+ if (r < 0) {
+ fprintf(stderr, "Partition %s has invalid UUID: %s\n", p, v);
+ r = -EIO;
+ goto fail;
+ }
errno = 0;
r = blkid_probe_lookup_value(b, "PART_ENTRY_NUMBER", &v, NULL);
}
static int print_efi_option(uint16_t id, bool in_order) {
- char *title = NULL;
- char *path = NULL;
+ _cleanup_free_ char *title = NULL;
+ _cleanup_free_ char *path = NULL;
sd_id128_t partition;
bool active;
int r = 0;
r = efi_get_boot_option(id, &title, &partition, &path, &active);
if (r < 0)
- goto finish;
+ return r;
/* print only configured entries with partition information */
if (!path || sd_id128_equal(partition, SD_ID128_NULL))
printf(" File: └─%s\n", path);
printf("\n");
-finish:
- free(title);
- free(path);
- return r;
+ return 0;
}
static int status_variables(void) {
}
static int remove_from_order(uint16_t slot) {
- uint16_t *order = NULL;
+ _cleanup_free_ uint16_t *order = NULL;
int n_order;
int i;
int err = 0;
break;
}
- free(order);
return err;
}