From: LakshmiNarayanand Date: Thu, 21 Jan 2016 11:28:28 +0000 (+0530) Subject: Fixing Memory Leak X-Git-Tag: v0.4~15^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a85319c592a5884440751ed23a80d1e56a059186;p=users%2Fsagi%2Fnvme-cli.git Fixing Memory Leak --- diff --git a/nvme.c b/nvme.c index d957621b..10251a95 100644 --- a/nvme.c +++ b/nvme.c @@ -2834,12 +2834,15 @@ static int submit_io(int opcode, char *command, const char *desc, mbuffer = malloc(cfg.metadata_size); if ((opcode & 1) && read(dfd, (void *)buffer, cfg.data_size) < 0) { fprintf(stderr, "failed to read data buffer from input file\n"); + free(buffer); return EINVAL; } if ((opcode & 1) && cfg.metadata_size && read(mfd, (void *)mbuffer, cfg.metadata_size) < 0) { fprintf(stderr, "failed to read meta-data buffer from input file\n"); - return EINVAL; + err = EINVAL; + goto free_and_return; + } io.opcode = opcode; @@ -2876,11 +2879,13 @@ static int submit_io(int opcode, char *command, const char *desc, else { if (!(opcode & 1) && write(dfd, (void *)buffer, cfg.data_size) < 0) { fprintf(stderr, "failed to write buffer to output file\n"); - return EINVAL; + err = EINVAL; + goto free_and_return; } else if (!(opcode & 1) && cfg.metadata_size && write(mfd, (void *)mbuffer, cfg.metadata_size) < 0) { fprintf(stderr, "failed to write meta-data buffer to output file\n"); - return EINVAL; + err = EINVAL; + goto free_and_return; } else fprintf(stderr, "%s: Success\n", command); }