jtag: avoid checking for non NULL pointer to free it
authorAntonio Borneo <borneo.antonio@gmail.com>
Mon, 17 Aug 2020 08:05:11 +0000 (10:05 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 5 Sep 2020 17:42:20 +0000 (18:42 +0100)
The function free() can be called with a NULL pointer as argument,
no need to check the argument before. If the pointer is NULL, no
operation is performed by free().

Remove the occurrences of pattern:
if (ptr)
free(ptr);

Change-Id: I2938e333bd1eac5218bd67aefb9d8f373da017a8
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5810
Tested-by: jenkins
23 files changed:
src/jtag/aice/aice_usb.c
src/jtag/drivers/amt_jtagaccel.c
src/jtag/drivers/arm-jtag-ew.c
src/jtag/drivers/bitbang.c
src/jtag/drivers/buspirate.c
src/jtag/drivers/ft232r.c
src/jtag/drivers/ftdi.c
src/jtag/drivers/gw16012.c
src/jtag/drivers/jtag_usb_common.c
src/jtag/drivers/jtag_vpi.c
src/jtag/drivers/kitprog.c
src/jtag/drivers/mpsse.c
src/jtag/drivers/opendous.c
src/jtag/drivers/openjtag.c
src/jtag/drivers/parport.c
src/jtag/drivers/presto.c
src/jtag/drivers/ti_icdi_usb.c
src/jtag/drivers/usb_blaster/usb_blaster.c
src/jtag/drivers/usbprog.c
src/jtag/drivers/versaloon/versaloon.c
src/jtag/drivers/vsllink.c
src/jtag/drivers/xlnx-pcie-xvc.c
src/jtag/tcl.c

index 5a200eb774b421bc5154693291f8eebcb940454e..7144632df9468fcfe53bd63f107e68ea953eaf89 100644 (file)
@@ -2537,15 +2537,9 @@ static int aice_usb_close(void)
 {
        jtag_libusb_close(aice_handler.usb_handle);
 
-       if (custom_srst_script)
-               free(custom_srst_script);
-
-       if (custom_trst_script)
-               free(custom_trst_script);
-
-       if (custom_restart_script)
-               free(custom_restart_script);
-
+       free(custom_srst_script);
+       free(custom_trst_script);
+       free(custom_restart_script);
        return ERROR_OK;
 }
 
index 81721cbb405fb654b16c2e61e6fa1975b5fe962b..e9ff8dfa1db41b09ff7a53de19c0979cabb1a753 100644 (file)
@@ -370,8 +370,7 @@ static int amt_jtagaccel_execute_queue(void)
                                amt_jtagaccel_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size);
                                if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK)
                                        retval = ERROR_JTAG_QUEUE_FAILED;
-                               if (buffer)
-                                       free(buffer);
+                               free(buffer);
                                break;
                        case JTAG_SLEEP:
                                LOG_DEBUG_IO("sleep %" PRIu32, cmd->cmd.sleep->us);
index 60b1195484f185177b63b78bd6477eea210e2959..40d52acb9cf49c40a31fa8657c299a6f54225cf0 100644 (file)
@@ -664,8 +664,7 @@ static int armjtagew_tap_execute(void)
                                        return ERROR_JTAG_QUEUE_FAILED;
                                }
 
-                               if (pending_scan_result->buffer != NULL)
-                                       free(pending_scan_result->buffer);
+                               free(pending_scan_result->buffer);
                        }
                } else {
                        LOG_ERROR("armjtagew_tap_execute, wrong result %d, expected %d",
index b33e87f2a4ccf418845b1382565cfa5158601ce2..df1d601b8e7f4abee0bdbdb4ce82f12864736676 100644 (file)
@@ -358,8 +358,7 @@ int bitbang_execute_queue(void)
                                        return ERROR_FAIL;
                                if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK)
                                        retval = ERROR_JTAG_QUEUE_FAILED;
-                               if (buffer)
-                                       free(buffer);
+                               free(buffer);
                                break;
                        case JTAG_SLEEP:
                                LOG_DEBUG_IO("sleep %" PRIu32, cmd->cmd.sleep->us);
index 2483b434647164d271847e5575a8bdddfb870b4a..dc38c5db099471d469903062e1bf8283dd1245a7 100644 (file)
@@ -352,10 +352,8 @@ static int buspirate_quit(void)
 
        buspirate_serial_close(buspirate_fd);
 
-       if (buspirate_port) {
-               free(buspirate_port);
-               buspirate_port = NULL;
-       }
+       free(buspirate_port);
+       buspirate_port = NULL;
        return ERROR_OK;
 }
 
index 3c54809c066e48268fbd50c20c24a3fcdd9be4a0..d97db56a640501dbc22f3a5900016b7959af1b9e 100644 (file)
@@ -886,8 +886,7 @@ static int syncbb_execute_queue(void)
                                syncbb_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size);
                                if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK)
                                        retval = ERROR_JTAG_QUEUE_FAILED;
-                               if (buffer)
-                                       free(buffer);
+                               free(buffer);
                                break;
 
                        case JTAG_SLEEP:
index d2b97b96eef17e925244e01b89fb7165c782990d..4fa83ae560f496c03264439a513f570fe39973c2 100644 (file)
@@ -709,8 +709,7 @@ static int ftdi_quit(void)
 COMMAND_HANDLER(ftdi_handle_device_desc_command)
 {
        if (CMD_ARGC == 1) {
-               if (ftdi_device_desc)
-                       free(ftdi_device_desc);
+               free(ftdi_device_desc);
                ftdi_device_desc = strdup(CMD_ARGV[0]);
        } else {
                LOG_ERROR("expected exactly one argument to ftdi_device_desc <description>");
@@ -722,8 +721,7 @@ COMMAND_HANDLER(ftdi_handle_device_desc_command)
 COMMAND_HANDLER(ftdi_handle_serial_command)
 {
        if (CMD_ARGC == 1) {
-               if (ftdi_serial)
-                       free(ftdi_serial);
+               free(ftdi_serial);
                ftdi_serial = strdup(CMD_ARGV[0]);
        } else {
                return ERROR_COMMAND_SYNTAX_ERROR;
index cad2e1b99b6299426a633f7ccc852d44b4fd484b..ef4b5d929e8d10425c1f66be499561318b2de788 100644 (file)
@@ -327,8 +327,7 @@ static int gw16012_execute_queue(void)
                                gw16012_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size);
                                if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK)
                                        retval = ERROR_JTAG_QUEUE_FAILED;
-                               if (buffer)
-                                       free(buffer);
+                               free(buffer);
                                break;
                        case JTAG_SLEEP:
                                LOG_DEBUG_IO("sleep %" PRIu32, cmd->cmd.sleep->us);
index 6337272fb6160ac372bdc95877d0714cf56e4f2f..969ea840624c7f90ba4ec0e73e98c7ca96225782 100644 (file)
@@ -23,8 +23,7 @@ void jtag_usb_set_location(const char *location)
            JTAG_USB_MAX_LOCATION_LENGTH)
                LOG_WARNING("usb location string is too long!!\n");
 
-       if (jtag_usb_location)
-               free(jtag_usb_location);
+       free(jtag_usb_location);
 
        jtag_usb_location = strndup(location, JTAG_USB_MAX_LOCATION_LENGTH);
 }
index 789d3a466ccdccd18bcaaecd4dbc794f9e8cc904..32a43f8bfccb938316ffb1373a25feeade40f8a5 100644 (file)
@@ -439,8 +439,7 @@ static int jtag_vpi_scan(struct scan_command *cmd)
        if (retval != ERROR_OK)
                return retval;
 
-       if (buf)
-               free(buf);
+       free(buf);
 
        if (cmd->end_state != TAP_DRSHIFT) {
                retval = jtag_vpi_state_move(cmd->end_state);
index 4f38d195d57f93a6a197a1c6557f66ff84053411..5538bcd7390b86163c24c86aa0d0bfdadc6b4e10 100644 (file)
@@ -227,18 +227,11 @@ static int kitprog_quit(void)
 {
        kitprog_usb_close();
 
-       if (kitprog_handle->packet_buffer != NULL)
-               free(kitprog_handle->packet_buffer);
-       if (kitprog_handle->serial != NULL)
-               free(kitprog_handle->serial);
-       if (kitprog_handle != NULL)
-               free(kitprog_handle);
-
-       if (kitprog_serial != NULL)
-               free(kitprog_serial);
-
-       if (pending_transfers != NULL)
-               free(pending_transfers);
+       free(kitprog_handle->packet_buffer);
+       free(kitprog_handle->serial);
+       free(kitprog_handle);
+       free(kitprog_serial);
+       free(pending_transfers);
 
        return ERROR_OK;
 }
index 7488d9dd877c65a97a8b88057a3299d25001e3de..fe8b6b82c1e15f76ab96788435da82683fa4784a 100644 (file)
@@ -404,13 +404,10 @@ void mpsse_close(struct mpsse_ctx *ctx)
        if (ctx->usb_ctx)
                libusb_exit(ctx->usb_ctx);
        bit_copy_discard(&ctx->read_queue);
-       if (ctx->write_buffer)
-               free(ctx->write_buffer);
-       if (ctx->read_buffer)
-               free(ctx->read_buffer);
-       if (ctx->read_chunk)
-               free(ctx->read_chunk);
 
+       free(ctx->write_buffer);
+       free(ctx->read_buffer);
+       free(ctx->read_chunk);
        free(ctx);
 }
 
index bccd3ddb0297b727a8fad1d11be8290de5e8c63f..f0e4f566d25d7bd38cb106f655788062129a1a21 100644 (file)
@@ -386,25 +386,17 @@ static int opendous_quit(void)
 {
        opendous_usb_close(opendous_jtag_handle);
 
-       if (usb_out_buffer) {
-               free(usb_out_buffer);
-               usb_out_buffer = NULL;
-       }
+       free(usb_out_buffer);
+       usb_out_buffer = NULL;
 
-       if (usb_in_buffer) {
-               free(usb_in_buffer);
-               usb_in_buffer = NULL;
-       }
+       free(usb_in_buffer);
+       usb_in_buffer = NULL;
 
-       if (pending_scan_results_buffer) {
-               free(pending_scan_results_buffer);
-               pending_scan_results_buffer = NULL;
-       }
+       free(pending_scan_results_buffer);
+       pending_scan_results_buffer = NULL;
 
-       if (opendous_type) {
-               free(opendous_type);
-               opendous_type = NULL;
-       }
+       free(opendous_type);
+       opendous_type = NULL;
 
        return ERROR_OK;
 }
@@ -697,8 +689,7 @@ int opendous_tap_execute(void)
                                return ERROR_JTAG_QUEUE_FAILED;
                        }
 
-                       if (pending_scan_result->buffer != NULL)
-                               free(pending_scan_result->buffer);
+                       free(pending_scan_result->buffer);
                }
 
                opendous_tap_init();
index 7eab5c1302bced6ca26b81e07f281fd20532960d..2cf5751d6b515debcf97b57339254387f3f5d3fe 100644 (file)
@@ -591,8 +591,7 @@ static int openjtag_execute_tap_queue(void)
 #endif
                        jtag_read_buffer(buffer, openjtag_scan_result_buffer[res_count].command);
 
-                       if (openjtag_scan_result_buffer[res_count].buffer)
-                               free(openjtag_scan_result_buffer[res_count].buffer);
+                       free(openjtag_scan_result_buffer[res_count].buffer);
 
                        res_count++;
                }
index b3abd120567e974c05248396992d05382675bca8..b203c828ba0febc0cf62b8bcbf05044c5a60c5a1 100644 (file)
@@ -392,10 +392,8 @@ static int parport_quit(void)
                parport_write_data();
        }
 
-       if (parport_cable) {
-               free(parport_cable);
-               parport_cable = NULL;
-       }
+       free(parport_cable);
+       parport_cable = NULL;
 
        return ERROR_OK;
 }
index 4046b22dd744cb208a6f3e6603264ceb3898d24b..6c3a187dbcbc70cbadf959f8775ec7737d1c9ee0 100644 (file)
@@ -511,8 +511,7 @@ static char *presto_serial;
 COMMAND_HANDLER(presto_handle_serial_command)
 {
        if (CMD_ARGC == 1) {
-               if (presto_serial)
-                       free(presto_serial);
+               free(presto_serial);
                presto_serial = strdup(CMD_ARGV[0]);
        } else
                return ERROR_COMMAND_SYNTAX_ERROR;
@@ -553,10 +552,8 @@ static int presto_jtag_quit(void)
        presto_close();
        LOG_INFO("PRESTO closed");
 
-       if (presto_serial) {
-               free(presto_serial);
-               presto_serial = NULL;
-       }
+       free(presto_serial);
+       presto_serial = NULL;
 
        return ERROR_OK;
 }
index f316c8256e596ba43f3f2bf7a7b38d4ca99b6d38..d276e588f5f5d801ed51b26fd9d854f78703e8e3 100644 (file)
@@ -662,14 +662,9 @@ static int icdi_usb_close(void *handle)
        if (h->usb_ctx)
                libusb_exit(h->usb_ctx);
 
-       if (h->read_buffer)
-               free(h->read_buffer);
-
-       if (h->write_buffer)
-               free(h->write_buffer);
-
+       free(h->read_buffer);
+       free(h->write_buffer);
        free(handle);
-
        return ERROR_OK;
 }
 
index 3c9c3a769ecdd8bdb4d2db719c7006f548d908b0..9648ba2e23e6a48aa745c9cb4998e5b0b914f10c 100644 (file)
@@ -736,8 +736,7 @@ static int ublast_scan(struct scan_command *cmd)
        ublast_queue_tdi(buf, scan_bits, type);
 
        ret = jtag_read_buffer(buf, cmd);
-       if (buf)
-               free(buf);
+       free(buf);
        /*
         * ublast_queue_tdi sends the last bit with TMS=1. We are therefore
         * already in Exit1-DR/IR and have to skip the first step on our way
index dd7dcdb4b5628fffea3972feeb95c65eeb0e796a..627e4653dd2182306e45b6062d480b09c00bc35b 100644 (file)
@@ -137,8 +137,7 @@ static int usbprog_execute_queue(void)
                        usbprog_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size);
                        if (jtag_read_buffer(buffer, cmd->cmd.scan) != ERROR_OK)
                                return ERROR_JTAG_QUEUE_FAILED;
-                       if (buffer)
-                               free(buffer);
+                       free(buffer);
                        break;
                case JTAG_SLEEP:
                        LOG_DEBUG_IO("sleep %" PRIu32, cmd->cmd.sleep->us);
index 35a0deff5ee3cfbf0e222ed3e0c0748921c8ec14..8efe44353f3740216b186b59cd045ac978c1609e 100644 (file)
@@ -299,14 +299,11 @@ RESULT versaloon_fini(void)
 
                versaloon_usb_device_handle = NULL;
 
-               if (versaloon_buf != NULL) {
-                       free(versaloon_buf);
-                       versaloon_buf = NULL;
-               }
-               if (versaloon_cmd_buf != NULL) {
-                       free(versaloon_cmd_buf);
-                       versaloon_cmd_buf = NULL;
-               }
+               free(versaloon_buf);
+               versaloon_buf = NULL;
+
+               free(versaloon_cmd_buf);
+               versaloon_cmd_buf = NULL;
        }
 
        return ERROR_OK;
index 6f2296e6d1ee1aa4289fa0545eb62e7a2d08bd8f..9aaed36b77d4880e6ad51cb97c40810d3e85ef95 100644 (file)
@@ -245,18 +245,14 @@ static int vsllink_speed_div(int jtag_speed, int *khz)
 
 static void vsllink_free_buffer(void)
 {
-       if (tdi_buffer != NULL) {
-               free(tdi_buffer);
-               tdi_buffer = NULL;
-       }
-       if (tdo_buffer != NULL) {
-               free(tdo_buffer);
-               tdo_buffer = NULL;
-       }
-       if (tms_buffer != NULL) {
-               free(tms_buffer);
-               tms_buffer = NULL;
-       }
+       free(tdi_buffer);
+       tdi_buffer = NULL;
+
+       free(tdo_buffer);
+       tdo_buffer = NULL;
+
+       free(tms_buffer);
+       tms_buffer = NULL;
 }
 
 static int vsllink_quit(void)
@@ -676,8 +672,7 @@ static int vsllink_jtag_execute(void)
                                        return ERROR_JTAG_QUEUE_FAILED;
                                }
 
-                               if (pending_scan_result->buffer != NULL)
-                                       free(pending_scan_result->buffer);
+                               free(pending_scan_result->buffer);
                        }
                }
        } else {
index 1dca5def8f4a6dabe006b3f9faa2e96d1dce29a6..2423a9f05b6222d51a279cb6f769bd20eb9febac 100644 (file)
@@ -282,8 +282,7 @@ static int xlnx_pcie_xvc_execute_scan(struct jtag_command *cmd)
        };
 
        err = jtag_read_buffer(buf, cmd->cmd.scan);
-       if (buf)
-               free(buf);
+       free(buf);
 
        if (tap_get_state() != tap_get_end_state())
                err = xlnx_pcie_xvc_execute_statemove(1);
@@ -291,8 +290,7 @@ static int xlnx_pcie_xvc_execute_scan(struct jtag_command *cmd)
        return err;
 
 out_err:
-       if (buf)
-               free(buf);
+       free(buf);
        return err;
 }
 
@@ -456,8 +454,7 @@ COMMAND_HANDLER(xlnx_pcie_xvc_handle_config_command)
         * limit the memory we're leaking by freeing the old one first
         * before allocating a new one ...
         */
-       if (xlnx_pcie_xvc->device)
-               free(xlnx_pcie_xvc->device);
+       free(xlnx_pcie_xvc->device);
 
        xlnx_pcie_xvc->device = strdup(CMD_ARGV[0]);
        return ERROR_OK;
index 1335c29173de453f0c0465a71c5278467fbaf4dd..153a98e1b64ebc53bf9fc02051cf08d9c7d4d740 100644 (file)
@@ -1155,10 +1155,8 @@ COMMAND_HANDLER(handle_irscan_command)
        retval = jtag_execute_queue();
 
 error_return:
-       for (i = 0; i < num_fields; i++) {
-               if (NULL != fields[i].out_value)
-                       free((void *)fields[i].out_value);
-       }
+       for (i = 0; i < num_fields; i++)
+               free((void *)fields[i].out_value);
 
        free(fields);