Changeset ad3c273 in github


Ignore:
Timestamp:
Nov 10, 2010 3:15:41 AM (3 years ago)
Author:
alecpl <alec@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
4d21f62
Parents:
d903fb4
Message:
  • Fix handling of message bodies (quoted-printable encoded) with NULL characters (#1486189)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • program/include/rcube_imap_generic.php

    rd903fb4 rad3c273  
    20812081                $bytes -= $len; 
    20822082 
     2083                // BASE64 
    20832084                        if ($mode == 1) { 
    20842085                                        $line = rtrim($line, "\t\r\n\0\x0B"); 
     
    20932094                                        else 
    20942095                                                $prev = ''; 
    2095  
    2096                                         if ($file) 
    2097                                                 fwrite($file, base64_decode($line)); 
    2098                         else if ($print) 
    2099                                                 echo base64_decode($line); 
    2100                                         else 
    2101                                                 $result .= base64_decode($line); 
     2096                                        $line = base64_decode($line); 
     2097                // QUOTED-PRINTABLE 
    21022098                                } else if ($mode == 2) { 
    21032099                                        $line = rtrim($line, "\t\r\0\x0B"); 
    2104                                         if ($file) 
    2105                                                 fwrite($file, quoted_printable_decode($line)); 
    2106                         else if ($print) 
    2107                                                 echo quoted_printable_decode($line); 
    2108                                         else 
    2109                                                 $result .= quoted_printable_decode($line); 
     2100                    $line = quoted_printable_decode($line); 
     2101                    // Remove NULL characters (#1486189) 
     2102                    $line = str_replace("\x00", '', $line); 
     2103                // UUENCODE 
    21102104                                } else if ($mode == 3) { 
    21112105                                        $line = rtrim($line, "\t\r\n\0\x0B"); 
    21122106                                        if ($line == 'end' || preg_match('/^begin\s+[0-7]+\s+.+$/', $line)) 
    21132107                                                continue; 
    2114                                         if ($file) 
    2115                                                 fwrite($file, convert_uudecode($line)); 
    2116                         else if ($print) 
    2117                                                 echo convert_uudecode($line); 
    2118                                         else 
    2119                                                 $result .= convert_uudecode($line); 
     2108                    $line = convert_uudecode($line); 
     2109                // default 
    21202110                                } else { 
    2121                                         $line = rtrim($line, "\t\r\n\0\x0B"); 
    2122                                         if ($file) 
    2123                                                 fwrite($file, $line . "\n"); 
    2124                         else if ($print) 
    2125                                                 echo $line . "\n"; 
    2126                                         else 
    2127                                                 $result .= $line . "\n"; 
     2111                                        $line = rtrim($line, "\t\r\n\0\x0B") . "\n"; 
    21282112                                } 
     2113 
     2114                        if ($file) 
     2115                                        fwrite($file, $line); 
     2116                        else if ($print) 
     2117                                        echo $line; 
     2118                                else 
     2119                                        $result .= $line; 
    21292120                } 
    21302121        } 
Note: See TracChangeset for help on using the changeset viewer.