Author: Amaury Forgeot d'Arc <amaur...@gmail.com> Branch: stdlib-2.7.3 Changeset: r55672:81bb5cfe7180 Date: 2012-06-14 23:13 +0200 http://bitbucket.org/pypy/pypy/changeset/81bb5cfe7180/
Log: INET6Address: Do like CPython and raise OverflowError when a negative value is passed for flowinfo. diff --git a/pypy/rlib/rsocket.py b/pypy/rlib/rsocket.py --- a/pypy/rlib/rsocket.py +++ b/pypy/rlib/rsocket.py @@ -408,13 +408,14 @@ host = space.str_w(pieces_w[0]) port = space.int_w(pieces_w[1]) port = Address.make_ushort_port(space, port) - if len(pieces_w) > 2: flowinfo = space.uint_w(pieces_w[2]) + if len(pieces_w) > 2: flowinfo = space.int_w(pieces_w[2]) else: flowinfo = 0 if len(pieces_w) > 3: scope_id = space.uint_w(pieces_w[3]) else: scope_id = 0 if flowinfo < 0 or flowinfo > 0xfffff: raise OperationError(space.w_OverflowError, space.wrap( "flowinfo must be 0-1048575.")) + flowinfo = rffi.cast(lltype.Unsigned, flowinfo) return INET6Address(host, port, flowinfo, scope_id) from_object = staticmethod(from_object) @@ -427,13 +428,14 @@ "to 4, not %d" % len(pieces_w)) port = space.int_w(pieces_w[1]) port = self.make_ushort_port(space, port) - if len(pieces_w) > 2: flowinfo = space.uint_w(pieces_w[2]) + if len(pieces_w) > 2: flowinfo = space.int_w(pieces_w[2]) else: flowinfo = 0 if len(pieces_w) > 3: scope_id = space.uint_w(pieces_w[3]) else: scope_id = 0 if flowinfo < 0 or flowinfo > 0xfffff: raise OperationError(space.w_OverflowError, space.wrap( "flowinfo must be 0-1048575.")) + flowinfo = rffi.cast(lltype.Unsigned, flowinfo) a = self.lock(_c.sockaddr_in6) rffi.setintfield(a, 'c_sin6_port', htons(port)) rffi.setintfield(a, 'c_sin6_flowinfo', htonl(flowinfo)) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit