From: oharboe Date: Fri, 29 Feb 2008 21:43:19 +0000 (+0000) Subject: fixed stack corruption. Introduced when _check_value was phased out. X-Git-Tag: v0.1.0~886 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=4cb9b179059bb40badde110da5641dcbbd636a29 fixed stack corruption. Introduced when _check_value was phased out. git-svn-id: svn://svn.berlios.de/openocd/trunk@403 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- diff --git a/src/target/xscale.c b/src/target/xscale.c index fdb123041a..8f7d835152 100644 --- a/src/target/xscale.c +++ b/src/target/xscale.c @@ -291,8 +291,6 @@ int xscale_read_dcsr(target_t *target) fields[1].in_check_value = NULL; fields[1].in_check_mask = NULL; - - fields[2].device = xscale->jtag_info.chain_pos; fields[2].num_bits = 1; fields[2].out_value = &field2; @@ -322,11 +320,16 @@ int xscale_read_dcsr(target_t *target) jtag_add_dr_scan(3, fields, -1); - return ERROR_OK; + /* DANGER!!! this must be here. It will make sure that the arguments + * to jtag_set_check_value() does not go out of scope! */ + return jtag_execute_queue(); } int xscale_receive(target_t *target, u32 *buffer, int num_words) { + if (num_words==0) + return ERROR_INVALID_ARGUMENTS; + int retval=ERROR_OK; armv4_5_common_t *armv4_5 = target->arch_info; xscale_common_t *xscale = armv4_5->arch_info;