From: guido@google.com <guido@google.com>
Date: Tue, 29 Mar 2011 18:51:26 +0000 (-0700)
Subject: Merge Issue 11662 from 3.1 branch.
X-Git-Tag: v3.2.1b1~189^2~1^2
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c768ff5d4f69f94455db82646e004fac4d11876e;p=python

Merge Issue 11662 from 3.1 branch.
---

c768ff5d4f69f94455db82646e004fac4d11876e
diff --cc Misc/NEWS
index 2c79a71abe,91d9ce6081..04c9faee93
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@@ -49,8 -44,9 +49,11 @@@ Core and Builtin
  Library
  -------
  
+ - Issue #11662: Make urllib and urllib2 ignore redirections if the
+   scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
+ 
 +- Issue #11628: cmp_to_key generated class should use __slots__
 +
  - Issue #5537: Fix time2isoz() and time2netscape() functions of
    httplib.cookiejar for expiration year greater than 2038 on 32-bit systems.
  
diff --cc Objects/typeslots.inc
index 0494a32aa9,0000000000..5186dcf834
mode 100644,000000..100644
--- a/Objects/typeslots.inc
+++ b/Objects/typeslots.inc
@@@ -1,75 -1,0 +1,75 @@@
- /* Generated by typeslots.py $Revision: 87806 $ */
++/* Generated by typeslots.py $Revision$ */
 +0,
 +0,
 +offsetof(PyHeapTypeObject, as_mapping.mp_ass_subscript),
 +offsetof(PyHeapTypeObject, as_mapping.mp_length),
 +offsetof(PyHeapTypeObject, as_mapping.mp_subscript),
 +offsetof(PyHeapTypeObject, as_number.nb_absolute),
 +offsetof(PyHeapTypeObject, as_number.nb_add),
 +offsetof(PyHeapTypeObject, as_number.nb_and),
 +offsetof(PyHeapTypeObject, as_number.nb_bool),
 +offsetof(PyHeapTypeObject, as_number.nb_divmod),
 +offsetof(PyHeapTypeObject, as_number.nb_float),
 +offsetof(PyHeapTypeObject, as_number.nb_floor_divide),
 +offsetof(PyHeapTypeObject, as_number.nb_index),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_add),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_and),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_floor_divide),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_lshift),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_multiply),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_or),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_power),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_remainder),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_rshift),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_subtract),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_true_divide),
 +offsetof(PyHeapTypeObject, as_number.nb_inplace_xor),
 +offsetof(PyHeapTypeObject, as_number.nb_int),
 +offsetof(PyHeapTypeObject, as_number.nb_invert),
 +offsetof(PyHeapTypeObject, as_number.nb_lshift),
 +offsetof(PyHeapTypeObject, as_number.nb_multiply),
 +offsetof(PyHeapTypeObject, as_number.nb_negative),
 +offsetof(PyHeapTypeObject, as_number.nb_or),
 +offsetof(PyHeapTypeObject, as_number.nb_positive),
 +offsetof(PyHeapTypeObject, as_number.nb_power),
 +offsetof(PyHeapTypeObject, as_number.nb_remainder),
 +offsetof(PyHeapTypeObject, as_number.nb_rshift),
 +offsetof(PyHeapTypeObject, as_number.nb_subtract),
 +offsetof(PyHeapTypeObject, as_number.nb_true_divide),
 +offsetof(PyHeapTypeObject, as_number.nb_xor),
 +offsetof(PyHeapTypeObject, as_sequence.sq_ass_item),
 +offsetof(PyHeapTypeObject, as_sequence.sq_concat),
 +offsetof(PyHeapTypeObject, as_sequence.sq_contains),
 +offsetof(PyHeapTypeObject, as_sequence.sq_inplace_concat),
 +offsetof(PyHeapTypeObject, as_sequence.sq_inplace_repeat),
 +offsetof(PyHeapTypeObject, as_sequence.sq_item),
 +offsetof(PyHeapTypeObject, as_sequence.sq_length),
 +offsetof(PyHeapTypeObject, as_sequence.sq_repeat),
 +offsetof(PyHeapTypeObject, ht_type.tp_alloc),
 +offsetof(PyHeapTypeObject, ht_type.tp_base),
 +offsetof(PyHeapTypeObject, ht_type.tp_bases),
 +offsetof(PyHeapTypeObject, ht_type.tp_call),
 +offsetof(PyHeapTypeObject, ht_type.tp_clear),
 +offsetof(PyHeapTypeObject, ht_type.tp_dealloc),
 +offsetof(PyHeapTypeObject, ht_type.tp_del),
 +offsetof(PyHeapTypeObject, ht_type.tp_descr_get),
 +offsetof(PyHeapTypeObject, ht_type.tp_descr_set),
 +offsetof(PyHeapTypeObject, ht_type.tp_doc),
 +offsetof(PyHeapTypeObject, ht_type.tp_getattr),
 +offsetof(PyHeapTypeObject, ht_type.tp_getattro),
 +offsetof(PyHeapTypeObject, ht_type.tp_hash),
 +offsetof(PyHeapTypeObject, ht_type.tp_init),
 +offsetof(PyHeapTypeObject, ht_type.tp_is_gc),
 +offsetof(PyHeapTypeObject, ht_type.tp_iter),
 +offsetof(PyHeapTypeObject, ht_type.tp_iternext),
 +offsetof(PyHeapTypeObject, ht_type.tp_methods),
 +offsetof(PyHeapTypeObject, ht_type.tp_new),
 +offsetof(PyHeapTypeObject, ht_type.tp_repr),
 +offsetof(PyHeapTypeObject, ht_type.tp_richcompare),
 +offsetof(PyHeapTypeObject, ht_type.tp_setattr),
 +offsetof(PyHeapTypeObject, ht_type.tp_setattro),
 +offsetof(PyHeapTypeObject, ht_type.tp_str),
 +offsetof(PyHeapTypeObject, ht_type.tp_traverse),
 +offsetof(PyHeapTypeObject, ht_type.tp_members),
 +offsetof(PyHeapTypeObject, ht_type.tp_getset),
 +offsetof(PyHeapTypeObject, ht_type.tp_free),