summaryrefslogtreecommitdiffstats
path: root/libfdisk/src/sgi.c
diff options
context:
space:
mode:
Diffstat (limited to 'libfdisk/src/sgi.c')
-rw-r--r--libfdisk/src/sgi.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libfdisk/src/sgi.c b/libfdisk/src/sgi.c
index 1e725de8f..871d673ae 100644
--- a/libfdisk/src/sgi.c
+++ b/libfdisk/src/sgi.c
@@ -253,7 +253,7 @@ static int sgi_list_table(struct fdisk_context *cxt)
struct sgi_device_parameter *sgiparam = &sgilabel->devparam;
size_t i, used;
char *p;
- int rc;
+ int rc = 0;
if (fdisk_context_display_details(cxt))
fdisk_colon(cxt, _(
@@ -280,7 +280,7 @@ static int sgi_list_table(struct fdisk_context *cxt)
tt_define_column(tb, _("Id"), 2, TT_FL_RIGHT);
tt_define_column(tb, _("System"), 0.2, TT_FL_TRUNC);
- for (i = 0, used = 1; i < cxt->label->nparts_max; i++) {
+ for (i = 0, used = 0; i < cxt->label->nparts_max; i++) {
uint32_t start, len;
struct fdisk_parttype *t;
struct tt_line *ln;
@@ -297,7 +297,7 @@ static int sgi_list_table(struct fdisk_context *cxt)
if (asprintf(&p, "%zu:", i + 1) > 0)
tt_line_set_data(ln, 0, p); /* # */
- p = fdisk_partname(cxt->dev_path, used++);
+ p = fdisk_partname(cxt->dev_path, i + 1);
if (p)
tt_line_set_data(ln, 1, p); /* Device */
@@ -317,9 +317,11 @@ static int sgi_list_table(struct fdisk_context *cxt)
if (t->name)
tt_line_set_data(ln, 7, strdup(t->name)); /* type Name */
fdisk_free_parttype(t);
+ used++;
}
- rc = fdisk_print_table(cxt, tb);
+ if (used)
+ rc = fdisk_print_table(cxt, tb);
tt_free_table(tb);
if (rc)
return rc;