WordPress.org

Make WordPress Core

Ticket #9697: 9697.2.patch

File 9697.2.patch, 14.6 KB (added by hakre, 5 years ago)

missing delimiter added for pcre pattern

  • wp-includes/class-phpmailer.php

     
    22/*~ class.phpmailer.php 
    33.---------------------------------------------------------------------------. 
    44|  Software: PHPMailer - PHP email class                                    | 
    5 |   Version: 2.0.2                                                          | 
     5|   Version: 2.0.4                                                          | 
    66|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  | 
    77|      Info: http://phpmailer.sourceforge.net                               | 
    88|   Support: http://sourceforge.net/projects/phpmailer/                     | 
     
    2828 * PHPMailer - PHP email transport class 
    2929 * @package PHPMailer 
    3030 * @author Andy Prevost 
    31  * @copyright 2004 - 2008 Andy Prevost 
     31 * @copyright 2004 - 2009 Andy Prevost 
    3232 */ 
    3333 
    3434class PHPMailer { 
     
    139139   * Holds PHPMailer version. 
    140140   * @var string 
    141141   */ 
    142   var $Version           = "2.0.2"; 
     142  var $Version           = "2.0.4"; 
    143143 
    144144  /** 
    145145   * Sets the email address that a reading confirmation will be sent. 
     
    257257  var $language        = array(); 
    258258  var $error_count     = 0; 
    259259  var $LE              = "\n"; 
     260  var $sign_cert_file  = ""; 
    260261  var $sign_key_file   = ""; 
    261262  var $sign_key_pass   = ""; 
    262263 
     
    649650    } elseif (file_exists($lang_path.'phpmailer.lang-en.php')) { 
    650651      include($lang_path.'phpmailer.lang-en.php'); 
    651652    } else { 
    652       $this->SetError('Could not load language file'); 
    653       return false; 
     653      $PHPMAILER_LANG = array(); 
     654      $PHPMAILER_LANG["provide_address"]      = 'You must provide at least one ' . 
     655      $PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.'; 
     656      $PHPMAILER_LANG["execute"]              = 'Could not execute: '; 
     657      $PHPMAILER_LANG["instantiate"]          = 'Could not instantiate mail function.'; 
     658      $PHPMAILER_LANG["authenticate"]         = 'SMTP Error: Could not authenticate.'; 
     659      $PHPMAILER_LANG["from_failed"]          = 'The following From address failed: '; 
     660      $PHPMAILER_LANG["recipients_failed"]    = 'SMTP Error: The following ' . 
     661      $PHPMAILER_LANG["data_not_accepted"]    = 'SMTP Error: Data not accepted.'; 
     662      $PHPMAILER_LANG["connect_host"]         = 'SMTP Error: Could not connect to SMTP host.'; 
     663      $PHPMAILER_LANG["file_access"]          = 'Could not access file: '; 
     664      $PHPMAILER_LANG["file_open"]            = 'File Error: Could not open file: '; 
     665      $PHPMAILER_LANG["encoding"]             = 'Unknown encoding: '; 
     666      $PHPMAILER_LANG["signing"]              = 'Signing Error: '; 
    654667    } 
    655668    $this->language = $PHPMAILER_LANG; 
    656669 
     
    864877      } elseif (count($this->cc) == 0) { 
    865878        $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); 
    866879      } 
    867       if(count($this->cc) > 0) { 
    868         $result .= $this->AddrAppend('Cc', $this->cc); 
    869       } 
    870880    } 
    871881 
    872882    $from = array(); 
     
    10071017      fclose($fp); 
    10081018      $signed = tempnam("", "signed"); 
    10091019 
    1010       if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_key_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) { 
     1020      if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) { 
    10111021        $fp = fopen($signed, "r"); 
    10121022        $result = fread($fp, filesize($this->sign_key_file)); 
     1023        $result = ''; 
     1024        while(!feof($fp)){ 
     1025          $result = $result . fread($fp, 1024); 
     1026        } 
    10131027        fclose($fp); 
    10141028      } else { 
    10151029        $this->SetError($this->Lang("signing").openssl_error_string()); 
     
    11591173      $cid         = $this->attachment[$i][7]; 
    11601174 
    11611175      $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); 
    1162       $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE); 
     1176      $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $this->EncodeHeader($this->SecureHeader($name)), $this->LE); 
    11631177      $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); 
    11641178 
    11651179      if($disposition == 'inline') { 
    11661180        $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); 
    11671181      } 
    11681182 
    1169       $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $name, $this->LE.$this->LE); 
     1183      $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $this->EncodeHeader($this->SecureHeader($name)), $this->LE.$this->LE); 
    11701184 
    11711185      /* Encode as string attachment */ 
    11721186      if($bString) { 
     
    13991413      } // end of for 
    14001414      $output .= $newline.$eol; 
    14011415    } // end of while 
    1402     return trim($output); 
     1416    return $output; 
    14031417  } 
    14041418 
    14051419  /** 
    1406    * Callback for converting to "=XX". 
    1407    * @access private 
    1408    * @return string 
    1409    */ 
    1410   function EncodeQ_callback ($matches) { 
    1411     return "=".sprintf("%02X", ord($matches[1])); 
    1412   } 
    1413  
    1414   /** 
    14151420   * Encode string to q encoding. 
    14161421   * @access private 
    14171422   * @return string 
     
    14221427 
    14231428    switch (strtolower($position)) { 
    14241429      case 'phrase': 
    1425         $encoded = preg_replace_callback("/([^A-Za-z0-9!*+\/ -])/", 
    1426                                          "EncodeQ_callback", $encoded); 
     1430        $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); 
    14271431        break; 
    14281432      case 'comment': 
    1429         $encoded = preg_replace_callback("/([\(\)\"])/", 
    1430                                          "EncodeQ_callback", $encoded); 
    1431         break; 
     1433        $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); 
    14321434      case 'text': 
    14331435      default: 
    14341436        /* Replace every high ascii, control =, ? and _ characters */ 
    1435         $encoded = preg_replace_callback('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/', 
    1436                                          "EncodeQ_callback", $encoded); 
     1437        $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', 
     1438              "'='.sprintf('%02X', ord('\\1'))", $encoded); 
    14371439        break; 
    14381440    } 
    14391441 
     
    17221724          $ext = $fileParts[1]; 
    17231725          $mimeType = $this->_mime_types($ext); 
    17241726          if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; } 
    1725           if ( strlen($directory) > 1 && substr($basedir,-1) != '/') { $directory .= '/'; } 
    1726           $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64', $mimeType); 
     1727          if ( strlen($directory) > 1 && substr($directory,-1) != '/') { $directory .= '/'; } 
    17271728          if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) { 
    17281729            $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message); 
    17291730          } 
     
    17341735    $this->Body = $message; 
    17351736    $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message))); 
    17361737    if ( !empty($textMsg) && empty($this->AltBody) ) { 
    1737       $this->AltBody = $textMsg; 
     1738      $this->AltBody = html_entity_decode($textMsg); 
    17381739    } 
    17391740    if ( empty($this->AltBody) ) { 
    17401741      $this->AltBody = 'To view this email message, open the email in with HTML compatibility!' . "\n\n"; 
     
    17481749   */ 
    17491750  function _mime_types($ext = '') { 
    17501751    $mimes = array( 
    1751       'hqx'  =>  'application/mac-binhex40', 
    1752       'cpt'   =>  'application/mac-compactpro', 
    1753       'doc'   =>  'application/msword', 
     1752      'ai'    =>  'application/postscript', 
     1753      'aif'   =>  'audio/x-aiff', 
     1754      'aifc'  =>  'audio/x-aiff', 
     1755      'aiff'  =>  'audio/x-aiff', 
     1756      'avi'   =>  'video/x-msvideo', 
    17541757      'bin'   =>  'application/macbinary', 
    1755       'dms'   =>  'application/octet-stream', 
    1756       'lha'   =>  'application/octet-stream', 
    1757       'lzh'   =>  'application/octet-stream', 
    1758       'exe'   =>  'application/octet-stream', 
     1758      'bmp'   =>  'image/bmp', 
    17591759      'class' =>  'application/octet-stream', 
    1760       'psd'   =>  'application/octet-stream', 
    1761       'so'    =>  'application/octet-stream', 
    1762       'sea'   =>  'application/octet-stream', 
    1763       'dll'   =>  'application/octet-stream', 
    1764       'oda'   =>  'application/oda', 
    1765       'pdf'   =>  'application/pdf', 
    1766       'ai'    =>  'application/postscript', 
    1767       'eps'   =>  'application/postscript', 
    1768       'ps'    =>  'application/postscript', 
    1769       'smi'   =>  'application/smil', 
    1770       'smil'  =>  'application/smil', 
    1771       'mif'   =>  'application/vnd.mif', 
    1772       'xls'   =>  'application/vnd.ms-excel', 
    1773       'ppt'   =>  'application/vnd.ms-powerpoint', 
    1774       'wbxml' =>  'application/vnd.wap.wbxml', 
    1775       'wmlc'  =>  'application/vnd.wap.wmlc', 
     1760      'cpt'   =>  'application/mac-compactpro', 
     1761      'css'   =>  'text/css', 
    17761762      'dcr'   =>  'application/x-director', 
    17771763      'dir'   =>  'application/x-director', 
     1764      'dll'   =>  'application/octet-stream', 
     1765      'dms'   =>  'application/octet-stream', 
     1766      'doc'   =>  'application/msword', 
     1767      'dvi'   =>  'application/x-dvi', 
    17781768      'dxr'   =>  'application/x-director', 
    1779       'dvi'   =>  'application/x-dvi', 
     1769      'eml'   =>  'message/rfc822', 
     1770      'eps'   =>  'application/postscript', 
     1771      'exe'   =>  'application/octet-stream', 
     1772      'gif'   =>  'image/gif', 
    17801773      'gtar'  =>  'application/x-gtar', 
    1781       'php'   =>  'application/x-httpd-php', 
    1782       'php4'  =>  'application/x-httpd-php', 
    1783       'php3'  =>  'application/x-httpd-php', 
    1784       'phtml' =>  'application/x-httpd-php', 
    1785       'phps'  =>  'application/x-httpd-php-source', 
     1774      'htm'   =>  'text/html', 
     1775      'html'  =>  'text/html', 
     1776      'jpe'   =>  'image/jpeg', 
     1777      'jpeg'  =>  'image/jpeg', 
     1778      'jpg'   =>  'image/jpeg', 
     1779      'hqx'   =>  'application/mac-binhex40', 
    17861780      'js'    =>  'application/x-javascript', 
    1787       'swf'   =>  'application/x-shockwave-flash', 
    1788       'sit'   =>  'application/x-stuffit', 
    1789       'tar'   =>  'application/x-tar', 
    1790       'tgz'   =>  'application/x-tar', 
    1791       'xhtml' =>  'application/xhtml+xml', 
    1792       'xht'   =>  'application/xhtml+xml', 
    1793       'zip'   =>  'application/zip', 
     1781      'lha'   =>  'application/octet-stream', 
     1782      'log'   =>  'text/plain', 
     1783      'lzh'   =>  'application/octet-stream', 
    17941784      'mid'   =>  'audio/midi', 
    17951785      'midi'  =>  'audio/midi', 
    1796       'mpga'  =>  'audio/mpeg', 
     1786      'mif'   =>  'application/vnd.mif', 
     1787      'mov'   =>  'video/quicktime', 
     1788      'movie' =>  'video/x-sgi-movie', 
    17971789      'mp2'   =>  'audio/mpeg', 
    17981790      'mp3'   =>  'audio/mpeg', 
    1799       'aif'   =>  'audio/x-aiff', 
    1800       'aiff'  =>  'audio/x-aiff', 
    1801       'aifc'  =>  'audio/x-aiff', 
     1791      'mpe'   =>  'video/mpeg', 
     1792      'mpeg'  =>  'video/mpeg', 
     1793      'mpg'   =>  'video/mpeg', 
     1794      'mpga'  =>  'audio/mpeg', 
     1795      'oda'   =>  'application/oda', 
     1796      'pdf'   =>  'application/pdf', 
     1797      'php'   =>  'application/x-httpd-php', 
     1798      'php3'  =>  'application/x-httpd-php', 
     1799      'php4'  =>  'application/x-httpd-php', 
     1800      'phps'  =>  'application/x-httpd-php-source', 
     1801      'phtml' =>  'application/x-httpd-php', 
     1802      'png'   =>  'image/png', 
     1803      'ppt'   =>  'application/vnd.ms-powerpoint', 
     1804      'ps'    =>  'application/postscript', 
     1805      'psd'   =>  'application/octet-stream', 
     1806      'qt'    =>  'video/quicktime', 
     1807      'ra'    =>  'audio/x-realaudio', 
    18021808      'ram'   =>  'audio/x-pn-realaudio', 
    18031809      'rm'    =>  'audio/x-pn-realaudio', 
    18041810      'rpm'   =>  'audio/x-pn-realaudio-plugin', 
    1805       'ra'    =>  'audio/x-realaudio', 
     1811      'rtf'   =>  'text/rtf', 
     1812      'rtx'   =>  'text/richtext', 
    18061813      'rv'    =>  'video/vnd.rn-realvideo', 
    1807       'wav'   =>  'audio/x-wav', 
    1808       'bmp'   =>  'image/bmp', 
    1809       'gif'   =>  'image/gif', 
    1810       'jpeg'  =>  'image/jpeg', 
    1811       'jpg'   =>  'image/jpeg', 
    1812       'jpe'   =>  'image/jpeg', 
    1813       'png'   =>  'image/png', 
    1814       'tiff'  =>  'image/tiff', 
    1815       'tif'   =>  'image/tiff', 
    1816       'css'   =>  'text/css', 
    1817       'html'  =>  'text/html', 
    1818       'htm'   =>  'text/html', 
     1814      'sea'   =>  'application/octet-stream', 
    18191815      'shtml' =>  'text/html', 
     1816      'sit'   =>  'application/x-stuffit', 
     1817      'so'    =>  'application/octet-stream', 
     1818      'smi'   =>  'application/smil', 
     1819      'smil'  =>  'application/smil', 
     1820      'swf'   =>  'application/x-shockwave-flash', 
     1821      'tar'   =>  'application/x-tar', 
     1822      'text'  =>  'text/plain', 
    18201823      'txt'   =>  'text/plain', 
    1821       'text'  =>  'text/plain', 
    1822       'log'   =>  'text/plain', 
    1823       'rtx'   =>  'text/richtext', 
    1824       'rtf'   =>  'text/rtf', 
     1824      'tgz'   =>  'application/x-tar', 
     1825      'tif'   =>  'image/tiff', 
     1826      'tiff'  =>  'image/tiff', 
     1827      'wav'   =>  'audio/x-wav', 
     1828      'wbxml' =>  'application/vnd.wap.wbxml', 
     1829      'wmlc'  =>  'application/vnd.wap.wmlc', 
     1830      'word'  =>  'application/msword', 
     1831      'xht'   =>  'application/xhtml+xml', 
     1832      'xhtml' =>  'application/xhtml+xml', 
     1833      'xl'    =>  'application/excel', 
     1834      'xls'   =>  'application/vnd.ms-excel', 
    18251835      'xml'   =>  'text/xml', 
    18261836      'xsl'   =>  'text/xml', 
    1827       'mpeg'  =>  'video/mpeg', 
    1828       'mpg'   =>  'video/mpeg', 
    1829       'mpe'   =>  'video/mpeg', 
    1830       'qt'    =>  'video/quicktime', 
    1831       'mov'   =>  'video/quicktime', 
    1832       'avi'   =>  'video/x-msvideo', 
    1833       'movie' =>  'video/x-sgi-movie', 
    1834       'doc'   =>  'application/msword', 
    1835       'word'  =>  'application/msword', 
    1836       'xl'    =>  'application/excel', 
    1837       'eml'   =>  'message/rfc822' 
     1837      'zip'   =>  'application/zip' 
    18381838    ); 
    18391839    return ( ! isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; 
    18401840  } 
     
    18981898   * @param string $key_filename Parameter File Name 
    18991899   * @param string $key_pass Password for private key 
    19001900   */ 
    1901   function Sign($key_filename, $key_pass) { 
     1901  function Sign($cert_filename, $key_filename, $key_pass) { 
     1902    $this->sign_cert_file = $cert_filename; 
    19021903    $this->sign_key_file = $key_filename; 
    19031904    $this->sign_key_pass = $key_pass; 
    19041905  } 
  • wp-includes/class-smtp.php

     
    22/*~ class.smtp.php 
    33.---------------------------------------------------------------------------. 
    44|  Software: PHPMailer - PHP email class                                    | 
    5 |   Version: 2.0.2                                                          | 
     5|   Version: 2.0.4                                                          | 
    66|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  | 
    77|      Info: http://phpmailer.sourceforge.net                               | 
    88|   Support: http://sourceforge.net/projects/phpmailer/                     |