]> git.gag.com Git - fw/openocd/blobdiff - src/jtag/drivers/mpsse.c
ftdi: extend ftdi_location format
[fw/openocd] / src / jtag / drivers / mpsse.c
index 924c974502af9ac8b3f5acfdfcd37077642f7a2d..89248921ae46657cab6510557db4f5b964514682 100644 (file)
@@ -120,7 +120,7 @@ static bool device_location_equal(libusb_device *device, const char *location)
 
        LOG_DEBUG("device path has %i steps", path_len);
 
-       ptr = strtok(loc, ":");
+       ptr = strtok(loc, "-:");
        if (ptr == NULL) {
                LOG_DEBUG("no ':' in path");
                goto done;
@@ -132,7 +132,7 @@ static bool device_location_equal(libusb_device *device, const char *location)
 
        path_step = 0;
        while (path_step < 7) {
-               ptr = strtok(NULL, ",");
+               ptr = strtok(NULL, ".,");
                if (ptr == NULL) {
                        LOG_DEBUG("no more tokens in path at step %i", path_step);
                        break;
@@ -335,7 +335,13 @@ struct mpsse_ctx *mpsse_open(const uint16_t *vid, const uint16_t *pid, const cha
        ctx->write_size = 16384;
        ctx->read_chunk = malloc(ctx->read_chunk_size);
        ctx->read_buffer = malloc(ctx->read_size);
-       ctx->write_buffer = malloc(ctx->write_size);
+
+       /* Use calloc to make valgrind happy: buffer_write() sets payload
+        * on bit basis, so some bits can be left uninitialized in write_buffer.
+        * Although this is perfectly ok with MPSSE, valgrind reports
+        * Syscall param ioctl(USBDEVFS_SUBMITURB).buffer points to uninitialised byte(s) */
+       ctx->write_buffer = calloc(1, ctx->write_size);
+
        if (!ctx->read_chunk || !ctx->read_buffer || !ctx->write_buffer)
                goto error;