From 9c2aae2a44cb054a1cba43c949d0ba06427d29ed Mon Sep 17 00:00:00 2001 From: Junichi Satoh Date: Mon, 8 Nov 2021 10:00:43 +0900 Subject: [PATCH] Fixed special multibyte characters treatment. They were not converted to html entities when storing to DB. --- pandora_server/lib/PandoraFMS/Tools.pm | 155 ++++++++++++++++++++++++- 1 file changed, 154 insertions(+), 1 deletion(-) diff --git a/pandora_server/lib/PandoraFMS/Tools.pm b/pandora_server/lib/PandoraFMS/Tools.pm index e4d605ff12..2d17d53b80 100755 --- a/pandora_server/lib/PandoraFMS/Tools.pm +++ b/pandora_server/lib/PandoraFMS/Tools.pm @@ -376,6 +376,159 @@ my %ENT2CHR = ( 'ouml' => chr(246), 'uacute' => chr(250), 'uuml' => chr(252), +# multibyte characters + 'OElig' => chr(338), + 'oelig' => chr(339), + 'Scaron' => chr(352), + 'scaron' => chr(353), + 'Yuml' => chr(376), + 'fnof' => chr(402), + 'circ' => chr(710), + 'tilde' => chr(732), + 'Alpha' => chr(913), + 'Beta' => chr(914), + 'Gamma' => chr(915), + 'Delta' => chr(916), + 'Epsilon' => chr(917), + 'Zeta' => chr(918), + 'Eta' => chr(919), + 'Theta' => chr(920), + 'Iota' => chr(921), + 'Kappa' => chr(922), + 'Lambda' => chr(923), + 'Mu' => chr(924), + 'Nu' => chr(925), + 'Xi' => chr(926), + 'Omicron' => chr(927), + 'Pi' => chr(928), + 'Rho' => chr(929), + 'Sigma' => chr(931), + 'Tau' => chr(932), + 'Upsilon' => chr(933), + 'Phi' => chr(934), + 'Chi' => chr(935), + 'Psi' => chr(936), + 'Omega' => chr(937), + 'alpha' => chr(945), + 'beta' => chr(946), + 'gamma' => chr(947), + 'delta' => chr(948), + 'epsilon' => chr(949), + 'zeta' => chr(950), + 'eta' => chr(951), + 'theta' => chr(952), + 'iota' => chr(953), + 'kappa' => chr(954), + 'lambda' => chr(955), + 'mu' => chr(956), + 'nu' => chr(957), + 'xi' => chr(958), + 'omicron' => chr(959), + 'pi' => chr(960), + 'rho' => chr(961), + 'sigmaf' => chr(962), + 'sigma' => chr(963), + 'tau' => chr(964), + 'upsilon' => chr(965), + 'phi' => chr(966), + 'chi' => chr(967), + 'psi' => chr(968), + 'omega' => chr(969), + 'thetasym' => chr(977), + 'upsih' => chr(978), + 'piv' => chr(982), + 'ensp' => chr(8194), + 'emsp' => chr(8195), + 'thinsp' => chr(8201), + 'zwnj' => chr(8204), + 'zwj' => chr(8205), + 'lrm' => chr(8206), + 'rlm' => chr(8207), + 'ndash' => chr(8211), + 'mdash' => chr(8212), + 'lsquo' => chr(8216), + 'rsquo' => chr(8217), + 'sbquo' => chr(8218), + 'ldquo' => chr(8220), + 'rdquo' => chr(8221), + 'bdquo' => chr(8222), + 'dagger' => chr(8224), + 'Dagger' => chr(8225), + 'bull' => chr(8226), + 'hellip' => chr(8230), + 'permil' => chr(8240), + 'prime' => chr(8242), + 'Prime' => chr(8243), + 'lsaquo' => chr(8249), + 'rsaquo' => chr(8250), + 'oline' => chr(8254), + 'frasl' => chr(8260), + 'euro' => chr(8364), + 'image' => chr(8465), + 'weierp' => chr(8472), + 'real' => chr(8476), + 'trade' => chr(8482), + 'alefsym' => chr(8501), + 'larr' => chr(8592), + 'uarr' => chr(8593), + 'rarr' => chr(8594), + 'darr' => chr(8595), + 'harr' => chr(8596), + 'crarr' => chr(8629), + 'lArr' => chr(8656), + 'uArr' => chr(8657), + 'rArr' => chr(8658), + 'dArr' => chr(8659), + 'hArr' => chr(8660), + 'forall' => chr(8704), + 'part' => chr(8706), + 'exist' => chr(8707), + 'empty' => chr(8709), + 'nabla' => chr(8711), + 'isin' => chr(8712), + 'notin' => chr(8713), + 'ni' => chr(8715), + 'prod' => chr(8719), + 'sum' => chr(8721), + 'minus' => chr(8722), + 'lowast' => chr(8727), + 'radic' => chr(8730), + 'prop' => chr(8733), + 'infin' => chr(8734), + 'ang' => chr(8736), + 'and' => chr(8743), + 'or' => chr(8744), + 'cap' => chr(8745), + 'cup' => chr(8746), + 'int' => chr(8747), + 'there4' => chr(8756), + 'sim' => chr(8764), + 'cong' => chr(8773), + 'asymp' => chr(8776), + 'ne' => chr(8800), + 'equiv' => chr(8801), + 'le' => chr(8804), + 'ge' => chr(8805), + 'sub' => chr(8834), + 'sup' => chr(8835), + 'nsub' => chr(8836), + 'sube' => chr(8838), + 'supe' => chr(8839), + 'oplus' => chr(8853), + 'otimes' => chr(8855), + 'perp' => chr(8869), + 'sdot' => chr(8901), + 'lceil' => chr(8968), + 'rceil' => chr(8969), + 'lfloor' => chr(8970), + 'rfloor' => chr(8971), + 'lang' => chr(9001), + 'rang' => chr(9002), + 'loz' => chr(9674), + 'spades' => chr(9824), + 'clubs' => chr(9827), + 'hearts' => chr(9829), + 'diams' => chr(9830), ); # Construct the character to entity mapping. @@ -475,7 +628,7 @@ sub safe_input($) { return "" unless defined($value); - $value =~ s/([\x00-\xFF])/$CHR2ENT{$1}||$1/ge; + $value =~ s/(.)/$CHR2ENT{$1}||$1/ge; return $value; }