gunnar: server/patches/horde-webmail/1.2.0/tg t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff, NONE, 1.1.2.1 series, 1.5.2.2, 1.5.2.3

cvs at kolab.org cvs at kolab.org
Thu Apr 2 11:51:36 CEST 2009


Author: gunnar

Update of /kolabrepository/server/patches/horde-webmail/1.2.0/tg
In directory doto:/tmp/cvs-serv7930/patches/horde-webmail/1.2.0/tg

Modified Files:
      Tag: kolab_2_2_branch
	series 
Added Files:
      Tag: kolab_2_2_branch
	t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff 
Log Message:
       kolab/issue3520 (calendar with certain entries does not display in
                        web client)
       kolab/issue3528 (Events with broken encoding should work)


--- NEW FILE: t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff ---
From: Gunnar Wrobel <p at rdus.de>
Subject: [PATCH] t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn

Correct handling of empty return values from the XML parser. An empty
return might occur if the XML document is broken (e.g. broken encoding).

ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client)
ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events)
ISSUE: kolab/issue3528 (Events with broken encoding should work)

LINK: https://www.intevation.de/roundup/kolab/issue3520
LINK: https://www.intevation.de/roundup/kolab/issue3525
LINK: https://www.intevation.de/roundup/kolab/issue3528

STATUS: COMMIT

REF:

Signed-off-by: Gunnar Wrobel <p at rdus.de>

---
 horde-webmail/lib/Horde/Kolab/Format/XML.php |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php
index d3d7def..30320c9 100644
--- a/horde-webmail/lib/Horde/Kolab/Format/XML.php
+++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php
@@ -364,6 +364,9 @@ class Horde_Kolab_Format_XML
     /**
      * Load an object based on the given XML string.
      *
+     * @todo Check encoding of the returned array. It seems to be ISO-8859-1 at
+     * the moment and UTF-8 would seem more appropriate.
+     *
      * @param string $xmltext  The XML of the message as string.
      *
      * @return array|PEAR_Error The data array representing the object.
@@ -371,7 +374,10 @@ class Horde_Kolab_Format_XML
     function load(&$xmltext)
     {
         $noderoot = $this->_parseXml($xmltext);
-        if ($noderoot === false) {
+        if (is_a($noderoot, 'PEAR_Error')) {
+            return $noderoot;
+        }
+        if (empty($noderoot)) {
             return false;
         }
 
@@ -530,9 +536,13 @@ class Horde_Kolab_Format_XML
      */
     function _parseXml(&$xmltext)
     {
+        if (strcasecmp(mb_detect_encoding($xmltext, 'UTF-8, ISO-8859-1'), 'UTF-8') !== 0) {
+            $xmltext = mb_convert_encoding($xmltext, 'UTF-8', 'ISO-8859-1');
+        }
+
         $params = array(
             'xml' => $xmltext,
-            'options' => HORDE_DOM_LOAD_REMOVE_BLANKS,
+            'options' => HORDE_DOM_LOAD_REMOVE_BLANKS | HORDE_DOM_LOAD_RECOVER,
         );
 
         $result = Horde_DOM_Document::factory($params);
-- 
tg: (2d1588f..) t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn (depends on: t/kronolith/HK/GW/XfbAccess)
-- 
TOPGIT patch commit log
=======================

commit 1883efc257b2e50646e11da79cc47fb0f7f328ca
Author: Gunnar Wrobel <p at rdus.de>
Date:   Thu Apr 2 11:36:17 2009 +0200

    Correct handling of empty return values from the XML parser. An empty
    return might occur if the XML document is broken (e.g. broken encoding).
    
    ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client)
    ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events)
    ISSUE: kolab/issue3528 (Events with broken encoding should work)
    
    LINK: https://www.intevation.de/roundup/kolab/issue3520
    LINK: https://www.intevation.de/roundup/kolab/issue3525
    LINK: https://www.intevation.de/roundup/kolab/issue3528

Index: series
===================================================================
RCS file: /kolabrepository/server/patches/horde-webmail/1.2.0/tg/series,v
retrieving revision 1.5.2.2
retrieving revision 1.5.2.3
diff -u -d -r1.5.2.2 -r1.5.2.3
--- series	26 Mar 2009 21:31:00 -0000	1.5.2.2
+++ series	2 Apr 2009 09:51:34 -0000	1.5.2.3
@@ -67,3 +67,4 @@
 t_imp_H_GW_LoginRetries.diff -p1
 t_imp_H_JS_bug7739.diff -p1
 t_imp_H_MS_bug7438.diff -p1
+t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff -p1





More information about the commits mailing list