Avoid dereferencing NULL pointer.
If a NULL pointer is passed, don't attempt to increment it. This avoids passing the now not-NULL pointer on and eventually segfaulting. Also remove some unnecessary temporary variables. Change-Id: I268e225121aa283d59179bfae407ebf6959d3a4e Signed-off-by: Darius Rad <darius@bluespec.com> Reviewed-on: http://openocd.zylin.com/4550 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>bscan_tunnel
parent
42097baf19
commit
fe38562dbe
|
@ -204,23 +204,20 @@ static int jtag_vpi_queue_tdi_xfer(uint8_t *bits, int nb_bits, int tap_shift)
|
||||||
static int jtag_vpi_queue_tdi(uint8_t *bits, int nb_bits, int tap_shift)
|
static int jtag_vpi_queue_tdi(uint8_t *bits, int nb_bits, int tap_shift)
|
||||||
{
|
{
|
||||||
int nb_xfer = DIV_ROUND_UP(nb_bits, XFERT_MAX_SIZE * 8);
|
int nb_xfer = DIV_ROUND_UP(nb_bits, XFERT_MAX_SIZE * 8);
|
||||||
uint8_t *xmit_buffer = bits;
|
|
||||||
int xmit_nb_bits = nb_bits;
|
|
||||||
int i = 0;
|
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
while (nb_xfer) {
|
while (nb_xfer) {
|
||||||
|
|
||||||
if (nb_xfer == 1) {
|
if (nb_xfer == 1) {
|
||||||
retval = jtag_vpi_queue_tdi_xfer(&xmit_buffer[i], xmit_nb_bits, tap_shift);
|
retval = jtag_vpi_queue_tdi_xfer(bits, nb_bits, tap_shift);
|
||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
return retval;
|
return retval;
|
||||||
} else {
|
} else {
|
||||||
retval = jtag_vpi_queue_tdi_xfer(&xmit_buffer[i], XFERT_MAX_SIZE * 8, NO_TAP_SHIFT);
|
retval = jtag_vpi_queue_tdi_xfer(bits, XFERT_MAX_SIZE * 8, NO_TAP_SHIFT);
|
||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
return retval;
|
return retval;
|
||||||
xmit_nb_bits -= XFERT_MAX_SIZE * 8;
|
nb_bits -= XFERT_MAX_SIZE * 8;
|
||||||
i += XFERT_MAX_SIZE;
|
if (bits)
|
||||||
|
bits += XFERT_MAX_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
nb_xfer--;
|
nb_xfer--;
|
||||||
|
|
Loading…
Reference in New Issue