]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
Fix double free discover log
authorKeith Busch <kbusch@kernel.org>
Sat, 22 Feb 2020 22:09:38 +0000 (14:09 -0800)
committerKeith Busch <kbusch@kernel.org>
Sat, 22 Feb 2020 22:09:38 +0000 (14:09 -0800)
Signed-off-by: Keith Busch <kbusch@kernel.org>
src/nvme/fabrics.c

index 836e4634f8886ea2110e4d6de434e446513f5f22..bf0ae67547bde9065459b0bc9f0a65ab4d9b97ce 100644 (file)
@@ -303,7 +303,6 @@ int nvmf_get_discovery_log(nvme_ctrl_t c, struct nvmf_discovery_log **logp,
                numrec = le64_to_cpu(log->numrec);
                genctr = le64_to_cpu(log->genctr);
 
-               free(log);
                if (numrec == 0) {
                        *logp = log;
                        return 0;
@@ -312,6 +311,7 @@ int nvmf_get_discovery_log(nvme_ctrl_t c, struct nvmf_discovery_log **logp,
                size = sizeof(struct nvmf_discovery_log) +
                        sizeof(struct nvmf_disc_log_entry) * (numrec);
 
+               free(log);
                log = malloc(size);
                if (!log) {
                        errno = ENOMEM;