Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/email/header.py

    r2 r391  
    4747# For use with .match()
    4848fcre = re.compile(r'[\041-\176]+:$')
     49
     50# Find a header embedded in a putative header value.  Used to check for
     51# header injection attack.
     52_embeded_header = re.compile(r'\n[^ \t]+:')
    4953
    5054
     
    9599                    dec = email.quoprimime.header_decode(encoded)
    96100                elif encoding == 'b':
     101                    paderr = len(encoded) % 4   # Postel's law: add missing padding
     102                    if paderr:
     103                        encoded += '==='[:4 - paderr]
    97104                    try:
    98105                        dec = email.base64mime.decode(encoded)
     
    405412            lastchunk, lastcharset = newchunks[-1]
    406413            lastlen = lastcharset.encoded_header_len(lastchunk)
    407         return self._encode_chunks(newchunks, maxlinelen)
     414        value = self._encode_chunks(newchunks, maxlinelen)
     415        if _embeded_header.search(value):
     416            raise HeaderParseError("header value appears to contain "
     417                "an embedded header: {!r}".format(value))
     418        return value
    408419
    409420
Note: See TracChangeset for help on using the changeset viewer.