jtag: avoid checking for non NULL pointer to free it 10/5810/3
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);
 

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)