]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: make context->label usage more robust [smatch scan]
authorKarel Zak <kzak@redhat.com>
Wed, 5 Aug 2015 10:53:03 +0000 (12:53 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 5 Aug 2015 10:54:49 +0000 (12:54 +0200)
libfdisk/src/ask.c
libfdisk/src/label.c

index 7e0c3c218717942c207d2faa655ef4f683b40e99..d81ebd76a2ff6665e885d02f6572a0cc72d1cec8 100644 (file)
@@ -432,9 +432,9 @@ int fdisk_ask_partnum(struct fdisk_context *cxt, size_t *partnum, int wantnew)
 
        DBG(ASK, ul_debug("%s: asking for %s partition number "
                          "(max: %zu, inchar: %s)",
-                       cxt->label->name,
+                       cxt->label ? cxt->label->name : "???",
                        wantnew ? "new" : "used",
-                       cxt->label->nparts_max,
+                       cxt->label ? cxt->label->nparts_max : 0,
                        inchar ? "yes" : "not"));
 
        ask = fdisk_new_ask();
index d3009f5cbedb402b20531dfb12fa3a15286b3965..30d0e526f8758edb2f189d87467510d930bbe38d 100644 (file)
@@ -416,12 +416,13 @@ int fdisk_create_disklabel(struct fdisk_context *cxt, const char *name)
                return -ENOSYS;
 
        __fdisk_switch_label(cxt, lb);
+       assert(cxt->label == lb);
 
        if (haslabel && !cxt->parent)
                fdisk_reset_device_properties(cxt);
 
        DBG(CXT, ul_debugobj(cxt, "create a new %s label", lb->name));
-       return cxt->label->op->create(cxt);
+       return lb->op->create(cxt);
 }
 
 /**