From: Karel Zak Date: Wed, 5 Aug 2015 10:53:03 +0000 (+0200) Subject: libfdisk: make context->label usage more robust [smatch scan] X-Git-Tag: v2.27-rc2~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c736ff38b9409a4348f8d08a5fb255a787ae6db;p=thirdparty%2Futil-linux.git libfdisk: make context->label usage more robust [smatch scan] --- diff --git a/libfdisk/src/ask.c b/libfdisk/src/ask.c index 7e0c3c2187..d81ebd76a2 100644 --- a/libfdisk/src/ask.c +++ b/libfdisk/src/ask.c @@ -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(); diff --git a/libfdisk/src/label.c b/libfdisk/src/label.c index d3009f5cbe..30d0e526f8 100644 --- a/libfdisk/src/label.c +++ b/libfdisk/src/label.c @@ -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); } /**