Skip to content

Commit 8e6bd9a

Browse files
martin-gpyigaw
authored andcommitted
nvme-cli: sanitize free() handling
As per the POSIX manual, free() is NULL-safe i.e. we could call it without first checking whether the respective pointer is non-NULL. So apply that here. Suggested-by: Martin Belanger <[email protected]> Signed-off-by: Martin George <[email protected]>
1 parent 15bf951 commit 8e6bd9a

File tree

7 files changed

+28
-56
lines changed

7 files changed

+28
-56
lines changed

nvme-print-json.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2287,8 +2287,7 @@ static void json_phy_rx_eom_log(struct nvme_phy_rx_eom_log *log, __u16 controlle
22872287
if (allocated_eyes) {
22882288
for (i = 0; i < log->nd; i++) {
22892289
/* Free any Printable Eye strings allocated */
2290-
if (allocated_eyes[i])
2291-
free(allocated_eyes[i]);
2290+
free(allocated_eyes[i]);
22922291
}
22932292
}
22942293

plugins/memblaze/memblaze-nvme.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,7 @@ static void show_memblaze_smart_log_new(struct nvme_memblaze_smart_log *s, unsig
122122
__u8 *raw = malloc(RAW_SIZE * sizeof(__u8));
123123

124124
if (!nm) {
125-
if (raw)
126-
free(raw);
125+
free(raw);
127126
return;
128127
}
129128
if (!raw) {
@@ -320,8 +319,7 @@ static void show_memblaze_smart_log_old(struct nvme_memblaze_smart_log *smart,
320319
__u8 *raw = malloc(RAW_SIZE * sizeof(__u8));
321320

322321
if (!nm) {
323-
if (raw)
324-
free(raw);
322+
free(raw);
325323
return;
326324
}
327325
if (!raw) {

plugins/micron/micron-nvme.c

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2345,8 +2345,7 @@ static int micron_telemetry_log(int fd, __u8 type, __u8 **data,
23452345
err = nvme_get_log_telemetry_host(fd, 0, bs, buffer);
23462346
if (err) {
23472347
fprintf(stderr, "Failed to get telemetry log header for 0x%X\n", type);
2348-
if (buffer)
2349-
free(buffer);
2348+
free(buffer);
23502349
return err;
23512350
}
23522351

@@ -2359,10 +2358,8 @@ static int micron_telemetry_log(int fd, __u8 type, __u8 **data,
23592358

23602359
if (!data_area[da]) {
23612360
fprintf(stderr, "Requested telemetry data for 0x%X is empty\n", type);
2362-
if (buffer) {
2363-
free(buffer);
2364-
buffer = NULL;
2365-
}
2361+
free(buffer);
2362+
buffer = NULL;
23662363
return -1;
23672364
}
23682365

@@ -2384,8 +2381,7 @@ static int micron_telemetry_log(int fd, __u8 type, __u8 **data,
23842381
*data = buffer;
23852382
} else {
23862383
fprintf(stderr, "Failed to get telemetry data for 0x%x\n", type);
2387-
if (buffer)
2388-
free(buffer);
2384+
free(buffer);
23892385
}
23902386

23912387
return err;
@@ -2410,10 +2406,8 @@ static int GetTelemetryData(int fd, const char *dir)
24102406
sprintf(msg, "telemetry log: 0x%X", tmap[i].log);
24112407
WriteData(buffer, logSize, dir, tmap[i].file, msg);
24122408
}
2413-
if (buffer) {
2414-
free(buffer);
2415-
buffer = NULL;
2416-
}
2409+
free(buffer);
2410+
buffer = NULL;
24172411
logSize = 0;
24182412
}
24192413
return err;
@@ -3733,14 +3727,11 @@ static int GetOcpEnhancedTelemetryLog(int fd, const char *dir, int nLogID)
37333727
}
37343728
}
37353729

3736-
if (pTelemetryBuffer != NULL) {
3737-
free(pTelemetryBuffer);
3738-
pTelemetryBuffer = NULL;
3739-
}
3730+
free(pTelemetryBuffer);
3731+
pTelemetryBuffer = NULL;
37403732
}
37413733
// free mem of header, all areas
3742-
if (pTelemetryDataHeader != NULL)
3743-
free(pTelemetryDataHeader);
3734+
free(pTelemetryDataHeader);
37443735

37453736
return err;
37463737
}
@@ -4102,10 +4093,8 @@ static int micron_internal_logs(int argc, char **argv, struct command *cmd,
41024093
WriteData(dataBuffer, bSize, strCtrlDirName, aVendorLogs[i].strFileName, msg);
41034094
}
41044095

4105-
if (dataBuffer) {
4106-
free(dataBuffer);
4107-
dataBuffer = NULL;
4108-
}
4096+
free(dataBuffer);
4097+
dataBuffer = NULL;
41094098
}
41104099

41114100
err = ZipAndRemoveDir(strMainDirName, cfg.package);

plugins/shannon/shannon-nvme.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,7 @@ static int get_additional_feature(int argc, char **argv, struct command *cmd, st
246246
err = nvme_get_features(&args);
247247
if (err > 0)
248248
nvme_show_status(err);
249-
if (buf)
250-
free(buf);
249+
free(buf);
251250
return err;
252251
}
253252

@@ -367,8 +366,7 @@ static int set_additional_feature(int argc, char **argv, struct command *cmd, st
367366
nvme_show_status(err);
368367

369368
free:
370-
if (buf)
371-
free(buf);
369+
free(buf);
372370
return err;
373371
}
374372

plugins/toshiba/toshiba-nvme.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,7 @@ static int nvme_get_sct_status(int fd, __u32 device_mask)
118118
}
119119
}
120120
end:
121-
if (data)
122-
free(data);
121+
free(data);
123122
return err;
124123
}
125124

@@ -321,8 +320,7 @@ static int nvme_get_internal_log(int fd, const char *const filename, bool curren
321320
end:
322321
if (o_fd >= 0)
323322
close(o_fd);
324-
if (page_data)
325-
free(page_data);
323+
free(page_data);
326324
return err;
327325
}
328326

@@ -416,8 +414,7 @@ static int nvme_get_vendor_log(struct nvme_dev *dev, __u32 namespace_id,
416414
d(log, log_len, 16, 1);
417415
}
418416
end:
419-
if (log)
420-
free(log);
417+
free(log);
421418
return err;
422419
}
423420

plugins/wdc/wdc-nvme.c

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7306,8 +7306,7 @@ static int wdc_get_c0_log_page(nvme_root_t r, struct nvme_dev *dev, char *format
73067306
ret = -1;
73077307
}
73087308

7309-
if (data)
7310-
free(data);
7309+
free(data);
73117310
break;
73127311
default:
73137312
fprintf(stderr, "ERROR: WDC: Unknown device id - 0x%x\n", device_id);
@@ -8595,8 +8594,7 @@ static int wdc_vs_cloud_log(int argc, char **argv, struct command *command,
85958594
ret = -1;
85968595
}
85978596

8598-
if (data)
8599-
free(data);
8597+
free(data);
86008598

86018599
out:
86028600
nvme_free_tree(r);
@@ -8679,8 +8677,7 @@ static int wdc_vs_hw_rev_log(int argc, char **argv, struct command *command,
86798677
}
86808678

86818679
free_buf:
8682-
if (data)
8683-
free(data);
8680+
free(data);
86848681

86858682
out:
86868683
nvme_free_tree(r);
@@ -8763,8 +8760,7 @@ static int wdc_vs_device_waf(int argc, char **argv, struct command *command,
87638760
phys_media_units_written_tlc = int128_to_double(ext_smart_log_ptr->ext_smart_pmuwt);
87648761
phys_media_units_written_slc = int128_to_double(ext_smart_log_ptr->ext_smart_pmuws);
87658762

8766-
if (data)
8767-
free(data);
8763+
free(data);
87688764
} else {
87698765
fprintf(stderr, "ERROR: WDC %s: get smart cloud log failure\n", __func__);
87708766
ret = -1;
@@ -9901,8 +9897,7 @@ static int wdc_fetch_log_directory(struct nvme_dev *dev, struct WDC_DE_VU_LOG_DI
99019897
directory->numOfValidLogEntries = entryId;
99029898

99039899
end:
9904-
if (fileDirectory)
9905-
free(fileDirectory);
9900+
free(fileDirectory);
99069901
return ret;
99079902
}
99089903

@@ -10048,8 +10043,7 @@ static int wdc_de_get_dump_trace(struct nvme_dev *dev, const char *filePath, __u
1004810043
ret);
1004910044
}
1005010045

10051-
if (readBuffer)
10052-
free(readBuffer);
10046+
free(readBuffer);
1005310047

1005410048
return ret;
1005510049
}
@@ -11538,8 +11532,7 @@ static int wdc_do_vs_nand_stats_sn810_2(struct nvme_dev *dev, char *format)
1153811532
}
1153911533

1154011534
out:
11541-
if (data)
11542-
free(data);
11535+
free(data);
1154311536
return ret;
1154411537
}
1154511538

@@ -12317,8 +12310,7 @@ static int wdc_cloud_boot_SSD_version(int argc, char **argv, struct command *com
1231712310
ret = -1;
1231812311
}
1231912312

12320-
if (data)
12321-
free(data);
12313+
free(data);
1232212314
} else {
1232312315
fprintf(stderr, "ERROR: WDC: unsupported device for this command\n");
1232412316
}

plugins/ymtc/ymtc-nvme.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ static int show_ymtc_smart_log(struct nvme_dev *dev, __u32 nsid,
3232
u8 *raw = malloc(RAW_SIZE * sizeof(u8));
3333

3434
if (!nm) {
35-
if (raw)
36-
free(raw);
35+
free(raw);
3736
return -1;
3837
}
3938
if (!raw) {

0 commit comments

Comments
 (0)