Re: Infinite loop in Horde/Icalendar.php when syncing

Jan Schneider <[email protected]>
Newsgroups gmane.comp.horde.sync
Message-ID <[email protected]>
Fixed in Git.

Zitat von Carsten Schumann <[email protected]>:

> On Mon, 22 Aug 2011 17:43:36 +0200, Jan Schneider wrote:
>> Zitat von Carsten Schumann <[email protected]>:
>>
>>> Hi guys,
>>>
>>> I have reinstalled my horde webmail since I had to upgrade from   
>>> webmail 1.2.4 to 4.0.2 for my new Ipad. The web frontend works  
>>> fine  but when I try to sync my mobile phone against kronolith,  
>>> apache  ends up in an infinite loop in Horde/Icalendar.php:584  
>>> while trying  to parse the answer from my phone.
>>>
>>> The loop reads:
>>>
>>>        while   
>>> (preg_match_all('/^([^:]+;\s*(ENCODING=)?QUOTED-PRINTABLE(.*=\r?\n)+(.*[^=])?(\r?\n|$))/mU', $vCal, $matches))   
>>> {
>>>            foreach ($matches[1] as $s) {
>>>                $r = preg_replace('/=\r?\n\s/', '', $s);
>>>                $vCal = str_replace($s, $r, $vCal);
>>>            }
>>>        }
>>>
>>>
>>> $vCal has the value
>>>
>>> X-IRMC-LUID:3422981680^M CATEGORIES:Memo^M   
>>> SUMMARY;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Feuerwehr:=20Baumaktion=20Au=^M fr=C3=A4umen^M DTSTART:20071201T100000Z^M   
>>> DTEND:20071201T120000Z
>>>
>>> and after the preg_match_all instruction, $matches[1] contains an   
>>> array with one element
>>>
>>>
>>> SUMMARY;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Feuerwehr:=20Baumaktion=20Au=^M   
>>> fr=C3=A4umen^M
>>>
>>> which is not altered by the preg_replace expression. As $r==$s   
>>> nothing is altered by str_replace expression in $vCal. So the   
>>> preg_match_all matches again and again and again... ;-)
>>>
>>> Is this issue known and is there a bugfix/workaround?
>>
>> No. Is that a copy and paste error, or is the data really one single
>> line? It's not valid iCalendar data then.
>>
>> Jan.
>>
>> --
>> Do you need professional PHP or Horde consulting?
>> http://horde.org/consulting/
>
>
> Hi Jan,
>
> you were right. The single line was produced by a "quick" hack to  
> output the line which causes the infinite loop using log_error($vCal).
>
> I've turned on sync logging now and in /tmp/client_11.wbxml I have  
> found the corresponding lines:
>
> [...]
> @AAA`KC21@AZ@ASCtext/x-vcalendar@AA@@TgWC3422981680@AAOCBEGIN:VCALENDAR
> VERSION:1.0
> BEGIN:VEVENT
> X-IRMC-LUID:3422981680
> CATEGORIES:Memo
> SUMMARY;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Feuerwehr:=20Baumaktion=20Au=
> fr=C3=A4umen
> DTSTART:20071201T100000Z
> DTEND:20071201T120000Z
> END:VEVENT
> END:VCALENDAR
> [...]
>
>
> /tmp/sync/data.txt reads:
>
> [...]
> Input received from client (text/x-vcalendar):
> BEGIN:VCALENDARM
> VERSION:1.0M
> BEGIN:VEVENTM
> X-IRMC-LUID:3422981680M
> CATEGORIES:MemoM
> SUMMARY;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Feuerwehr:=20Baumaktion=20Au=M
> fr=C3=A4umenM
> DTSTART:20071201T100000ZM
> DTEND:20071201T120000ZM
> END:VEVENTM
> END:VCALENDARM
>
> [EOF]
>
> /tmp/sync/log.txt does only mention client_10.wbxml. The file  
> client_11.wbxml is not mentioned.
>
> /tmp/sync/devinf.txt is quite large so i won't send it to the list.  
> If it's required, just tell me and I will send it in a separate mail.
>
> Carsten
>
>
> -- 
> sync mailing list - Join the hunt: http://horde.org/bounties/#sync
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: [email protected]


Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/

-- 
sync mailing list - Join the hunt: http://horde.org/bounties/#sync
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.