[Bug 264548] bhyve's nvme_opc_dataset_mgmt() can free() uninitialized pointer
Date: Wed, 08 Jun 2022 14:49:25 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264548 Bug ID: 264548 Summary: bhyve's nvme_opc_dataset_mgmt() can free() uninitialized pointer Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: bhyve Assignee: virtualization@FreeBSD.org Reporter: rtm@lcs.mit.edu Bhyve's nvme_opc_dataset_mgmt() can free(range) before initializing it: struct nvme_dsm_range *range; ...; if ((sc->ctrldata.oncs & NVME_ONCS_DSM) == 0) { pci_nvme_status_genc(status, NVME_SC_INVALID_OPCODE); goto out; } ...; range = calloc(1, NVME_MAX_DSM_TRIM); ...; out: free(range); A guest can cause this to happen by ringing the doorbell of a submission queue with an entry with cmd->opc NVME_OPC_DATASET_MANAGEMENT. -- You are receiving this mail because: You are the assignee for the bug.