Hello,

I was looking though the code in svn and found a couple items that might 
warrant attention.

In src/jtag/arm-jtag-ew.c around line 428. There is a variable initialized 
here:

uint8_t outp_en = 0;

and then at 428 is this:

outp_en &= ~srst_mask;

Which is the same as outp_en = 0 & ~srst_mask; Which is 0. Is this the 
intended value? A similar problem is at 433.

-------------

In src/jtag/jlink.c around line 567 is 

        len = buf_get_u32(usb_in_buffer, 0, 16);
        if (len > JLINK_IN_BUFFER_SIZE)

meaning that len could legally be == JLINK_IN_BUFFER_SIZE. After that is

        result = jlink_usb_read(jlink_jtag_handle, len);
        if (result != len)

Which guarantees that result would be JLINK_IN_BUFFER_SIZE if len was. 
Therefore the code at line 581 would zero something 1 location beyond the 
buffer.

usb_in_buffer[result] = 0;

------------

In src/target/etb.c is this code:

if (!(etm_ctx->capture_status && TRACE_TRIGGERED))

Was that supposed to be '&' rather than '&&' ?

-------------

Thanks,
-Steve
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to