static void reset_context(struct fdisk_context *cxt) { size_t i; DBG(CXT, ul_debugobj(cxt, "*** resetting context")); /* reset drives' private data */ for (i = 0; i < cxt->nlabels; i++) fdisk_deinit_label(cxt->labels[i]); if (cxt->parent) { /* the first sector may be independent on parent */ if (cxt->parent->firstsector != cxt->firstsector) free(cxt->firstsector); } else { /* we close device only in primary context */ if (cxt->dev_fd > -1) close(cxt->dev_fd); free(cxt->firstsector); } free(cxt->dev_path); cxt->dev_path = NULL; cxt->dev_fd = -1; cxt->firstsector = NULL; cxt->firstsector_bufsz = 0; fdisk_zeroize_device_properties(cxt); fdisk_unref_script(cxt->script); cxt->script = NULL; cxt->label = NULL; }
static void reset_context(struct fdisk_context *cxt) { size_t i; DBG(CXT, ul_debugobj(cxt, "*** resetting context")); /* reset drives' private data */ for (i = 0; i < cxt->nlabels; i++) fdisk_deinit_label(cxt->labels[i]); /* free device specific stuff */ if (!cxt->parent && cxt->dev_fd > -1) close(cxt->dev_fd); free(cxt->dev_path); if (cxt->parent == NULL || cxt->parent->firstsector != cxt->firstsector) free(cxt->firstsector); /* initialize */ cxt->dev_fd = -1; cxt->dev_path = NULL; cxt->firstsector = NULL; cxt->firstsector_bufsz = 0; fdisk_zeroize_device_properties(cxt); fdisk_unref_script(cxt->script); cxt->label = NULL; cxt->script = NULL; }