Michael is right, this patch should fix the issue. 2009/10/30 David Brownell <davi...@pacbell.net>
> On Thursday 29 October 2009, Michael Roth wrote: > > The code works like follow (N = bit_len): > > > > N -1 %4 2<< -1 ~ (binary) > > -------------------------------------------------- > > 1 0 0 2 1 1111 1110 > > 2 1 1 4 3 1111 1100 > > 3 2 2 8 7 1111 1000 > > 4 3 3 16 15 1111 0000 > > 5 4 0 2 1 1111 1110 > > 6 5 1 4 3 1111 1100 > > 7 6 2 8 7 1111 1000 > > 8 7 3 16 15 1111 0000 > > ... ... ... ... ... ... > > > > Signed-off-by: Michael Roth <mr...@nessie.de> > > Looks like a nice fix, and at least the comment explains > how it's supposed to work. ;) > > Did you verify against the test case from the bug report? > Sure looks to me as if it's got to have fixed that... > > I'll merge, and combine with a fix for the spelling error, > unless someone tells me that testcase fails. > > > --- > > src/svf/svf.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/src/svf/svf.c b/src/svf/svf.c > > index 276a374..54e2a26 100644 > > --- a/src/svf/svf.c > > +++ b/src/svf/svf.c > > @@ -685,7 +685,7 @@ static int svf_copy_hexstring_to_binary(char *str, > uint8_t **bin, int orig_bit_l > > str_len--; > > > > // check valid > > - if (str_len > 0 || (ch & ~((1 << (4 - (bit_len % 4))) - 1)) != 0) > > + if (str_len > 0 || (ch & ~((2 << ((bit_len - 1) % 4)) - 1)) != 0) > > { > > LOG_ERROR("value execede length"); > > return ERROR_FAIL; > > -- > > 1.6.4.4 > > > > > > > -- Best Regards, SimonQian http://www.SimonQian.com <http://www.simonqian.com/>
_______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development