stlink: avoid null pointer dereference in stlink_usb_close()
[openocd.git] / src / jtag / drivers / stlink_usb.c
index 7572e871a650d7a13b18389457edc99855f55a32..554ffc1edcbfc2e76e6fe9fd558a3dce37f988b1 100644 (file)
@@ -1664,14 +1664,14 @@ static int stlink_speed(void *handle, int khz, bool query)
 }
 
 /** */
-static int stlink_usb_close(void *fd)
+static int stlink_usb_close(void *handle)
 {
-       struct stlink_usb_handle_s *h = fd;
+       struct stlink_usb_handle_s *h = handle;
 
-       if (h->fd)
+       if (h && h->fd)
                jtag_libusb_close(h->fd);
 
-       free(fd);
+       free(h);
 
        return ERROR_OK;
 }
@@ -1831,16 +1831,16 @@ static int stlink_usb_open(struct hl_interface_param_s *param, void **fd)
        err = stlink_usb_init_mode(h, param->connect_under_reset);
 
        if (err != ERROR_OK) {
-               LOG_ERROR("init mode failed");
+               LOG_ERROR("init mode failed (unable to connect to the target)");
                goto error_open;
        }
 
        /* clock speed only supported by stlink/v2 and for firmware >= 22 */
        if (h->version.stlink >= 2 && h->version.jtag >= 22) {
-               LOG_INFO("Supported clock speeds are:");
+               LOG_DEBUG("Supported clock speeds are:");
 
                for (unsigned i = 0; i < ARRAY_SIZE(stlink_khz_to_speed_map); i++)
-                       LOG_INFO("%d kHz", stlink_khz_to_speed_map[i].speed);
+                       LOG_DEBUG("%d kHz", stlink_khz_to_speed_map[i].speed);
 
                stlink_speed(h, param->initial_interface_speed, false);
        }

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)