Merge branch 'main' into curl-hardening

This commit is contained in:
Nicola Asuni 2021-03-27 08:36:10 +00:00 committed by GitHub
commit 76864e25f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 77 additions and 31 deletions

4
.gitignore vendored
View File

@ -1 +1,3 @@
.idea
.idea
.phpdoc
*.bak

View File

@ -740,6 +740,7 @@ class PDF417 {
* @protected
*/
protected function getErrorCorrectionLevel($ecl, $numcw) {
$maxecl = 8; // starting error level
// check for automatic levels
if (($ecl < 0) OR ($ecl > 8)) {
if ($numcw < 41) {
@ -755,7 +756,6 @@ class PDF417 {
}
}
// get maximum correction level
$maxecl = 8; // starting error level
$maxerrsize = (928 - $numcw); // available codewords for error
while ($maxecl > 0) {
$errsize = (2 << $ecl);

View File

@ -1386,6 +1386,7 @@ class QRcode {
$p += 2;
}
$this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr));
$run = $p;
return $run;
}
@ -1455,7 +1456,7 @@ class QRcode {
break;
}
case QR_MODE_KJ: {
if ($hint == QR_MODE_KJ) {
if ($this->hint == QR_MODE_KJ) {
$length = $this->eatKanji();
} else {
$length = $this->eat8();

View File

@ -449,7 +449,7 @@ class TCPDF_COLORS {
}
if (!in_array($color, self::$jscolor)) {
// default transparent color
$color = $jscolor[0];
$color = self::$jscolor[0];
}
return 'color.'.$color;
}

View File

@ -557,6 +557,7 @@ class TCPDF_FONTS {
$numGlyphs = TCPDF_STATIC::_getUSHORT($font, $offset);
// ---------- get CIDToGIDMap ----------
$ctg = array();
$c = 0;
foreach ($encodingTables as $enctable) {
// get only specified Platform ID and Encoding ID
if (($enctable['platformID'] == $platid) AND ($enctable['encodingID'] == $encid)) {
@ -956,6 +957,7 @@ class TCPDF_FONTS {
// sfnt version must be 0x00010000 for TrueType version 1.0.
return $font;
}
$c = 0;
$offset += 4;
// get number of tables
$numTables = TCPDF_STATIC::_getUSHORT($font, $offset);
@ -1883,7 +1885,7 @@ class TCPDF_FONTS {
* Converts UTF-8 character to integer value.<br>
* Uses the getUniord() method if the value is not cached.
* @param $uch (string) character string to process.
* @return integer Unicode value
* @return int Unicode value
* @public static
*/
public static function uniord($uch) {
@ -1922,7 +1924,7 @@ class TCPDF_FONTS {
* ---------------------------------------------------------------------
* </pre>
* @param $uch (string) character string to process.
* @return integer Unicode value
* @return int Unicode value
* @author Nicola Asuni
* @public static
*/
@ -1995,7 +1997,7 @@ class TCPDF_FONTS {
* @author Nicola Asuni
* @public static
*/
public static function UTF8StringToArray($str, $isunicode=true, &$currentfont=array()) {
public static function UTF8StringToArray($str, $isunicode, &$currentfont) {
if ($isunicode) {
// requires PCRE unicode support turned on
$chars = TCPDF_STATIC::pregSplit('//','u', $str, -1, PREG_SPLIT_NO_EMPTY);
@ -2021,7 +2023,7 @@ class TCPDF_FONTS {
* @since 3.2.000 (2008-06-23)
* @public static
*/
public static function UTF8ToLatin1($str, $isunicode=true, &$currentfont=array()) {
public static function UTF8ToLatin1($str, $isunicode, &$currentfont) {
$unicode = self::UTF8StringToArray($str, $isunicode, $currentfont); // array containing UTF-8 unicode values
return self::UTF8ArrToLatin1($unicode);
}
@ -2037,7 +2039,7 @@ class TCPDF_FONTS {
* @since 1.53.0.TC005 (2005-01-05)
* @public static
*/
public static function UTF8ToUTF16BE($str, $setbom=false, $isunicode=true, &$currentfont=array()) {
public static function UTF8ToUTF16BE($str, $setbom, $isunicode, &$currentfont) {
if (!$isunicode) {
return $str; // string is not in unicode
}
@ -2057,7 +2059,7 @@ class TCPDF_FONTS {
* @since 2.1.000 (2008-01-08)
* @public static
*/
public static function utf8StrRev($str, $setbom=false, $forcertl=false, $isunicode=true, &$currentfont=array()) {
public static function utf8StrRev($str, $setbom, $forcertl, $isunicode, &$currentfont) {
return self::utf8StrArrRev(self::UTF8StringToArray($str, $isunicode, $currentfont), $str, $setbom, $forcertl, $isunicode, $currentfont);
}
@ -2074,7 +2076,7 @@ class TCPDF_FONTS {
* @since 4.9.000 (2010-03-27)
* @public static
*/
public static function utf8StrArrRev($arr, $str='', $setbom=false, $forcertl=false, $isunicode=true, &$currentfont=array()) {
public static function utf8StrArrRev($arr, $str, $setbom, $forcertl, $isunicode, &$currentfont) {
return self::arrUTF8ToUTF16BE(self::utf8Bidi($arr, $str, $forcertl, $isunicode, $currentfont), $setbom);
}
@ -2090,7 +2092,7 @@ class TCPDF_FONTS {
* @since 2.4.000 (2008-03-06)
* @public static
*/
public static function utf8Bidi($ta, $str='', $forcertl=false, $isunicode=true, &$currentfont=array()) {
public static function utf8Bidi($ta, $str, $forcertl, $isunicode, &$currentfont) {
// paragraph embedding level
$pel = 0;
// max level

View File

@ -276,7 +276,7 @@ class TCPDF_STATIC {
/**
* Determine whether a string is empty.
* @param $str (string) string to be checked
* @return boolean true if string is empty
* @return bool true if string is empty
* @since 4.5.044 (2009-04-16)
* @public static
*/
@ -1136,7 +1136,7 @@ class TCPDF_STATIC {
* @see setHtmlVSpace()
* @public static
*/
public static function fixHTMLCode($html, $default_css='', $tagvs='', $tidy_options='', &$tagvspaces=array()) {
public static function fixHTMLCode($html, $default_css, $tagvs, $tidy_options, &$tagvspaces) {
// configure parameters for HTML Tidy
if ($tidy_options === '') {
$tidy_options = array (
@ -2515,7 +2515,7 @@ class TCPDF_STATIC {
* @since 5.0.010 (2010-05-17)
* @public static
*/
public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points=false, $k=1, $pagedim=array()) {
public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points, $k, $pagedim=array()) {
if (!isset($pagedim[$page])) {
// initialize array
$pagedim[$page] = array();

View File

@ -2728,7 +2728,7 @@ class TCPDF {
/**
* Adjust the internal Cell padding array to take account of the line width.
* @param $brd (mixed) Indicates if borders must be drawn around the cell. The value can be a number:<ul><li>0: no border (default)</li><li>1: frame</li></ul> or a string containing some or all of the following characters (in any order):<ul><li>L: left</li><li>T: top</li><li>R: right</li><li>B: bottom</li></ul> or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)))
* @return array of adjustments
* @return void|array of adjustments
* @public
* @since 5.9.000 (2010-10-03)
*/
@ -2744,7 +2744,11 @@ class TCPDF {
$newbrd[$brd[$i]] = true;
}
$brd = $newbrd;
} elseif (($brd === 1) OR ($brd === true) OR (is_numeric($brd) AND (intval($brd) > 0))) {
} elseif (
($brd === 1)
|| ($brd === true)
|| (is_numeric($brd) && ((int)$brd > 0))
) {
$brd = array('LRTB' => true);
}
if (!is_array($brd)) {
@ -2762,7 +2766,7 @@ class TCPDF {
// process borders
foreach ($brd as $border => $style) {
$line_width = $this->LineWidth;
if (is_array($style) AND isset($style['width'])) {
if (is_array($style) && isset($style['width'])) {
// get border width
$line_width = $style['width'];
}
@ -2783,20 +2787,43 @@ class TCPDF {
}
}
// correct internal cell padding if required to avoid overlap between text and lines
if ((strpos($border,'T') !== false) AND ($this->cell_padding['T'] < $adj)) {
if (
is_numeric($this->cell_padding['T'])
&& ($this->cell_padding['T'] < $adj)
&& (strpos($border, 'T') !== false)
) {
$this->cell_padding['T'] = $adj;
}
if ((strpos($border,'R') !== false) AND ($this->cell_padding['R'] < $adj)) {
if (
is_numeric($this->cell_padding['R'])
&& ($this->cell_padding['R'] < $adj)
&& (strpos($border, 'R') !== false)
) {
$this->cell_padding['R'] = $adj;
}
if ((strpos($border,'B') !== false) AND ($this->cell_padding['B'] < $adj)) {
if (
is_numeric($this->cell_padding['B'])
&& ($this->cell_padding['B'] < $adj)
&& (strpos($border, 'B') !== false)
) {
$this->cell_padding['B'] = $adj;
}
if ((strpos($border,'L') !== false) AND ($this->cell_padding['L'] < $adj)) {
if (
is_numeric($this->cell_padding['L'])
&& ($this->cell_padding['L'] < $adj)
&& (strpos($border, 'L') !== false)
) {
$this->cell_padding['L'] = $adj;
}
}
return array('T' => ($this->cell_padding['T'] - $cp['T']), 'R' => ($this->cell_padding['R'] - $cp['R']), 'B' => ($this->cell_padding['B'] - $cp['B']), 'L' => ($this->cell_padding['L'] - $cp['L']));
return array(
'T' => ($this->cell_padding['T'] - $cp['T']),
'R' => ($this->cell_padding['R'] - $cp['R']),
'B' => ($this->cell_padding['B'] - $cp['B']),
'L' => ($this->cell_padding['L'] - $cp['L']),
);
}
/**
@ -16555,7 +16582,11 @@ class TCPDF {
$dom[($dom[$key]['parent'])]['content'] = str_replace('</thead>', '', $dom[($dom[$key]['parent'])]['content']);
}
// store header rows on a new table
if (($dom[$key]['value'] == 'tr') AND ($dom[($dom[$key]['parent'])]['thead'] === true)) {
if (
($dom[$key]['value'] === 'tr')
&& !empty($dom[($dom[$key]['parent'])]['thead'])
&& ($dom[($dom[$key]['parent'])]['thead'] === true)
) {
if (TCPDF_STATIC::empty_string($dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'])) {
$dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'] = $csstagarray.$a[$dom[($dom[($dom[$key]['parent'])]['parent'])]['elkey']];
}
@ -16985,10 +17016,20 @@ class TCPDF {
// rows on thead block are printed as a separate table
} else {
$dom[$key]['thead'] = false;
$parent = $dom[$key]['parent'];
if (!isset($dom[$parent]['rows'])) {
$dom[$parent]['rows'] = 0;
}
// store the number of rows on table element
++$dom[($dom[$key]['parent'])]['rows'];
++$dom[$parent]['rows'];
if (!isset($dom[$parent]['trids'])) {
$dom[$parent]['trids'] = array();
}
// store the TR elements IDs on table element
array_push($dom[($dom[$key]['parent'])]['trids'], $key);
array_push($dom[$parent]['trids'], $key);
}
}
if (($dom[$key]['value'] == 'th') OR ($dom[$key]['value'] == 'td')) {
@ -19813,7 +19854,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
}
}
if (!$in_table_head) { // we are not inside a thead section
$this->cell_padding = $table_el['old_cell_padding'];
$this->cell_padding = isset($table_el['old_cell_padding']) ? $table_el['old_cell_padding'] : null;
// reset row height
$this->resetLastH();
if (($this->page == ($this->numpages - 1)) AND ($this->pageopen[$this->numpages])) {

View File

@ -938,7 +938,7 @@ class TCPDFBarcode {
} else {
$t = false; // space
}
$w = $seq[$j];
$w = (float)$seq[$j];
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
$bararray['maxw'] += $w;
++$k;
@ -1271,7 +1271,7 @@ class TCPDFBarcode {
} else {
$t = false; // space
}
$w = $seq[$j];
$w = (float)$seq[$j];
$bararray['bcode'][] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
$bararray['maxw'] += $w;
}
@ -1856,7 +1856,7 @@ class TCPDFBarcode {
} else {
$t = false; // space
}
$w = $seq[$j];
$w = (float)$seq[$j];
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
$bararray['maxw'] += $w;
++$k;
@ -1947,7 +1947,7 @@ class TCPDFBarcode {
} else {
$t = false; // space
}
$w = $seq[$j];
$w = (float)$seq[$j];
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
$bararray['maxw'] += $w;
++$k;