[ovs-dev] [PATCH] python: Make invalid UTF-8 sequence messages consistent across Python versions.

Ben Pfaff blp at nicira.com
Wed Jul 6 16:01:12 UTC 2011


Thanks, I pushed this commit.

On Fri, Jul 01, 2011 at 04:55:05PM -0700, Justin Pettit wrote:
> Looks good.  Thanks.
> 
> --Justin
> 
> 
> On Jul 1, 2011, at 10:14 AM, Ben Pfaff wrote:
> 
> > Given the invalid input <C0 22>, some versions of Python report <C0> as the
> > invalid sequence and other versions report <C0 22> as the invalid sequence.
> > Similarly, given input <ED 80 7F>, some report <ED 80> and others report
> > <ED 80 7F> as the invalid sequence.  This caused spurious test failures for
> > the test "no invalid UTF-8 sequences in strings - Python", so this commit
> > makes the messages consistent by dropping the extra trailing byte from the
> > message.
> > 
> > I first noticed the longer sequences <C0 22> and <ED 80 7F> on Ubuntu
> > 10.04 with python version 2.6.5-0ubuntu1, but undoubtedly it exists
> > elsewhere also.
> > ---
> > python/ovs/json.py |    3 ++-
> > 1 files changed, 2 insertions(+), 1 deletions(-)
> > 
> > diff --git a/python/ovs/json.py b/python/ovs/json.py
> > index f8b02d1..67470fc 100644
> > --- a/python/ovs/json.py
> > +++ b/python/ovs/json.py
> > @@ -113,7 +113,8 @@ def from_string(s):
> >     try:
> >         s = unicode(s, 'utf-8')
> >     except UnicodeDecodeError, e:
> > -        seq = ' '.join(["0x%2x" % ord(c) for c in e.object[e.start:e.end]])
> > +        seq = ' '.join(["0x%2x" % ord(c)
> > +                        for c in e.object[e.start:e.end] if ord(c) >= 0x80])
> >         return ("not a valid UTF-8 string: invalid UTF-8 sequence %s" % seq)
> >     p = Parser(check_trailer=True)
> >     p.feed(s)
> > -- 
> > 1.7.4.4
> > 
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> 



More information about the dev mailing list