diff --git a/inc/caldav-PUT-functions.php b/inc/caldav-PUT-functions.php index d4c5025e..16a03315 100644 --- a/inc/caldav-PUT-functions.php +++ b/inc/caldav-PUT-functions.php @@ -648,8 +648,8 @@ EOSQL; $dav_data_params = $base_params; $dav_data_params[':user_no'] = $user_no; - // We don't allow a '/' in the UID to appear in the path, but anything else is fair game. - $dav_data_params[':dav_name'] = sprintf( '%s%s.ics', $path, str_replace('/','',$uid) ); + // We don't allow any of &?\/@%+: in the UID to appear in the path, but anything else is fair game. + $dav_data_params[':dav_name'] = sprintf( '%s%s.ics', $path, preg_replace('{[&?\\/@%+:]}','',$uid) ); $dav_data_params[':etag'] = md5($icalendar); $calitem_params = $dav_data_params; $dav_data_params[':dav_data'] = $icalendar; diff --git a/testing/tests/regression-suite/0962-REPORT-expanded.result b/testing/tests/regression-suite/0962-REPORT-expanded.result index e8401225..7d3efa6a 100644 --- a/testing/tests/regression-suite/0962-REPORT-expanded.result +++ b/testing/tests/regression-suite/0962-REPORT-expanded.result @@ -2,14 +2,14 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "a538e222b914a4030381e360ac974a27" -Content-Length: 2463 +ETag: "6049c2ed7383e7a84ccf7f019f8e07f5" +Content-Length: 2460 Content-Type: text/xml; charset="utf-8" - /caldav.php/user5/home/naltpirh2vfjfmplmsivuo30t8%40google.com.ics + /caldav.php/user5/home/naltpirh2vfjfmplmsivuo30t8google.com.ics BEGIN:VCALENDAR @@ -92,12 +92,12 @@ END:VCALENDAR - dav_name: >/user5/home/naltpirh2vfjfmplmsivuo30t8@google.com.ics< + dav_name: >/user5/home/naltpirh2vfjfmplmsivuo30t8google.com.ics< dtstart: >2010-08-16 15:00:00+12< dtstart_utc: >2010-08-16 03:00:00< rrule: >FREQ=MONTHLY;WKST=MO;BYDAY=3SU< - dav_name: >/user5/home/v3f2otajsto18em4rom3jd4238@google.com.ics< + dav_name: >/user5/home/v3f2otajsto18em4rom3jd4238google.com.ics< dtstart: >2009-07-08 12:00:00+12< dtstart_utc: >2009-07-08 00:00:00< rrule: >FREQ=WEEKLY;WKST=SU;INTERVAL=2;UNTIL=20090921T065959Z;BYDAY=MO< diff --git a/testing/tests/regression-suite/0963-POST-freebusy-private.result b/testing/tests/regression-suite/0963-POST-freebusy-private.result index 26d6d07c..98ebdc75 100644 --- a/testing/tests/regression-suite/0963-POST-freebusy-private.result +++ b/testing/tests/regression-suite/0963-POST-freebusy-private.result @@ -57,7 +57,7 @@ END:VCALENDAR start: >20060101T220000Z< class: >PRIVATE< - dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6@lamb.ics< + dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6lamb.ics< finish: >20060802T003456Z< rrule: >FREQ=YEARLY;INTERVAL=1< start: >20060801T003456Z< diff --git a/testing/tests/regression-suite/0964-REPORT-calquery-private.result b/testing/tests/regression-suite/0964-REPORT-calquery-private.result index 8a06a132..4a7c0664 100644 --- a/testing/tests/regression-suite/0964-REPORT-calquery-private.result +++ b/testing/tests/regression-suite/0964-REPORT-calquery-private.result @@ -2,14 +2,14 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook -ETag: "38a9a5f68b0d1510588fb3456181b129" -Content-Length: 1037 +ETag: "cdb4786ea5b91bf38b8f332da104965d" +Content-Length: 1034 Content-Type: text/xml; charset="utf-8" - /caldav.php/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543%40AKEXBE02.telecom.tcnz.net.ics + /caldav.php/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543AKEXBE02.telecom.tcnz.net.ics "621885941033781f3462950c9bc2844b" @@ -39,7 +39,7 @@ END:VCALENDAR class: >PUBLIC< - dav_name: >/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543@AKEXBE02.telecom.tcnz.net.ics< + dav_name: >/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543AKEXBE02.telecom.tcnz.net.ics< finish: >20070119T203000Z< rrule: >NULL< start: >20070119T203000Z< @@ -47,7 +47,7 @@ END:VCALENDAR tz_id: >NULL< class: >PRIVATE< - dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6@lamb.ics< + dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6lamb.ics< finish: >20060802T003456Z< rrule: >FREQ=YEARLY;INTERVAL=1< start: >20060801T003456Z<