Re: Infinite loop in Horde/Icalendar.php when syncing
Carsten Schumann <[email protected]>
| Newsgroups | gmane.comp.horde.sync |
|---|---|
| Message-ID | <[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]