View Issue Details

IDProjectCategoryView StatusLast Update
0003930SOGoBackend Calendarpublic2022-06-29 20:59
Reporterbrunt82 Assigned Tofrancis  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionduplicate 
Platform[Server] LinuxOSDebianOS Version8 (Jessie)
Product Version3.2.3 
Fixed in Version5.7.1 
Summary0003930: Problems while using quotes in calendar descriptions
Description

While using Thunderbird 45.5.1 it is impossible to add quotes (") to descriptions of calendar entries. It happens two things:

  • the quotes are removed and
  • special characters following the quote are encoded wrong.

While the first issue is not so bad, the second could confuse the user.

Something like:
test "this"
hey you

will be replaced with:
test this \nhey you

Steps To Reproduce
  • Open Thunderbird
  • create new issue with a quote and special characters which will be escaped by the client (e.g. paragraphs, umlauts, comma, etc.).
  • save the appointment
  • after syncing the client will display the appointment with the wrong character set.
Additional Information

Attached you will find two text documents, which were created by mitmproxy while sniffing the http stream of SOGo and Groupoffice.

In both cases the request will be almost the same. But while Groupoffice sends the correct description back, SOGo has changed it as described above. Because of the same client, the same user and the same test case I assume that SOGos backend interprets / stores the wrong characters.

TagsNo tags attached.

Relationships

duplicate of 0003530 resolvedfrancis Editing a task deletes quotes 
has duplicate 0004021 resolvedludovic Event description after breaks is not displayed 

Activities

brunt82

brunt82

2016-12-07 11:25

reporter  

sogo.txt (7,214 bytes)   
############
Request
############

2016-12-07 11:42:14 PUT http://sogo/SOGo/dav/Groupware%20Test%201/Calendar/personal/040000008200E00074C5B7101A82E00800000000109BA14C7950D201000000000000000010000000E21AEE724CFBFD4C9E5B74904A10333D.ics
                        ← 204 No Content text/plain [no content] 123ms

Host:             sogo1708                                                                                                                                                                                           
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 Lightning/4.7.4                                                                                                                   
Accept:           text/xml                                                                                                                                                                                                     
Accept-Language:  de,en-US;q=0.7,en;q=0.3                                                                                                                                                                                      
Accept-Encoding:  gzip, deflate                                                                                                                                                                                                
Accept-Charset:   utf-8,*;q=0.1                                                                                                                                                                                                
Content-Length:   619                                                                                                                                                                                                          
Content-Type:     text/calendar; charset=utf-8                                                                                                                                                                                 
If-Match:         "gcs00000007"                                                                                                                                                                                                
Authorization:    Basic removed
Connection:       keep-alive                                                                                                                                                                                                   
Pragma:           no-cache                                                                                                                                                                                                     
Cache-Control:    no-cache                                                                                                                                                                                                     
Raw                                                                                                                                                                                                                      [m:Auto]
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VEVENT
LAST-MODIFIED:20161207T104214Z
DTSTAMP:20161207T104214Z
UID:040000008200E00074C5B7101A82E00800000000109BA14C7950D20100000000000000
 0010000000E21AEE724CFBFD4C9E5B74904A10333D
SUMMARY:rzerz
DTSTART;VALUE=DATE:20161221
DTEND;VALUE=DATE:20161222
CLASS:PUBLIC
DESCRIPTION:Test "Anf\xc3\xbchrungszeichen" Sonderzeichen!"\xc2\xa7$%&/()= Test\\n\\, . 
 . \\, \\n\\ntest
X-MOZ-GENERATION:2
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;VALUE=DURATION:-PT18H
DESCRIPTION:Mozilla Standardbeschreibung
END:VALARM
END:VEVENT
END:VCALENDAR

############
Response
############
2016-12-07 11:42:14 REPORT http://sogo1708/SOGo/dav/Groupware%20Test%201/Calendar/personal/
                           ← 207 Multi-Status text/xml 1k 45ms

Date:                   Wed, 07 Dec 2016 10:42:14 GMT                                                                                                                                                                          
Server:                 Apache/2.4.10 (Debian)                                                                                                                                                                                 
Sogo-Request-Duration:  0.004845                                                                                                                                                                                               
Pragma:                 no-cache                                                                                                                                                                                               
Content-Type:           text/xml; charset="utf-8"                                                                                                                                                                              
Content-Length:         1121                                                                                                                                                                                                   
Cache-Control:          no-cache                                                                                                                                                                                               
Keep-Alive:             timeout=5, max=99                                                                                                                                                                                      
Connection:             Keep-Alive                                                                                                                                                                                             

<?xml version='1.0' encoding='utf-8'?>
<D:multistatus xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
  <D:response>
    <D:href>/SOGo/dav/Groupware Test 1/Calendar/personal/040000008200E00074C5B7101A82E00800000000109BA14C7950D201000000000000000010000000E21AEE724CFBFD4C9E5B74904A10333D.ics</D:href>
    <D:propstat>
      <D:prop>
        <C:calendar-data>BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VEVENT
LAST-MODIFIED:20161207T104214Z
DTSTAMP:20161207T104214Z
UID:040000008200E00074C5B7101A82E00800000000109BA14C7950D201000000000000000
 010000000E21AEE724CFBFD4C9E5B74904A10333D
SUMMARY:rzerz
DTSTART;VALUE=DATE:20161221
DTEND;VALUE=DATE:20161222
CLASS:PUBLIC
DESCRIPTION:Test Anführungszeichen Sonderzeichen!§$%&amp;/()= Test\\n\\\, . . \
 \\, \\n\\ntest
X-MOZ-GENERATION:2
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;VALUE=DURATION:-PT18H
DESCRIPTION:Mozilla Standardbeschreibung
END:VALARM
END:VEVENT
END:VCALENDAR</C:calendar-data>
        <D:getetag>"gcs00000008"</D:getetag>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
</D:multistatus>
sogo.txt (7,214 bytes)   
brunt82

brunt82

2016-12-07 11:25

reporter  

groupoffice.txt (7,291 bytes)   
##########
Request
##########
2016-12-07 11:43:21 PUT https://server_one/19f5a9e9-6976-4dbf-90f6-8a05114e33ff.ics
                        ← 204 No Content text/html [no content] 221ms

Host:             server_one                                                                                                                                                                                        
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 Lightning/4.7.4                                                                                                                   
Accept:           text/xml                                                                                                                                                                                                     
Accept-Language:  de,en-US;q=0.7,en;q=0.3                                                                                                                                                                                      
Accept-Encoding:  gzip, deflate                                                                                                                                                                                                
Accept-Charset:   utf-8,*;q=0.1                                                                                                                                                                                                
Content-Length:   836                                                                                                                                                                                                          
Content-Type:     text/calendar; charset=utf-8                                                                                                                                                                                 
If-Match:         "20161207 11:38:37-297242"                                                                                                                                                                                   
Authorization:    removed                                                                     
Connection:       keep-alive                                                                                                                                                                                                   
Pragma:           no-cache                                                                                                                                                                                                     
Cache-Control:    no-cache                                                                                                                                                                                                     

BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20161207T101016Z
LAST-MODIFIED:20161207T104320Z
DTSTAMP:20161207T104320Z
UID:19f5a9e9-6976-4dbf-90f6-8a05114e33ff
SUMMARY:Testtermin
STATUS:CONFIRMED
DTSTART;TZID=Europe/Berlin:20161214T120000
DTEND;TZID=Europe/Berlin:20161214T130000
DESCRIPTION:Test "Anf\xc3\xbchrungszeichen" Sonderzeichen!"\xc2\xa7$%&/()= Test\\n\\, . 
 . \\, \\n\\ntest\\n
X-MOZ-GENERATION:2
END:VEVENT
END:VCALENDAR

############
Response
############
2016-12-07 11:43:21 REPORT https://server_one
                           ← 207 Multi-Status application/xml 1k 144ms

Date:             Wed, 07 Dec 2016 10:43:21 GMT                                                                                                                                                                                
Server:           Apache/2.4.10 (Debian) PHP/5.6.27-0+deb8u1 OpenSSL/1.0.1t                                                                                                                                                    
X-Powered-By:     PHP/5.6.27-0+deb8u1                                                                                                                                                                                          
X-Sabre-Version:  3.1.3                                                                                                                                                                                                        
Vary:             Brief,Prefer                                                                                                                                                                                                 
Content-Length:   1361                                                                                                                                                                                                         
Keep-Alive:       timeout=15, max=99                                                                                                                                                                                           
Connection:       Keep-Alive                                                                                                                                                                                                   
Content-Type:     application/xml; charset=utf-8                                                                                                                                                                               

<?xml version='1.0' encoding='UTF-8'?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:cal="urn:ietf:params:xml:ns:caldav" xmlns:cs="http://calendarserver.org/ns/">
  <d:response>
    <d:href>/caldav/calendars/user/19f5a9e9-6976-4dbf-90f6-8a05114e33ff.ics</d:href>
    <d:propstat>
      <d:prop>
        <d:getetag>"20161207 11:43:20-297242"</d:getetag>
        <cal:calendar-data>BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20161207T101016Z
LAST-MODIFIED:20161207T104320Z
DTSTAMP:20161207T104320Z
UID:19f5a9e9-6976-4dbf-90f6-8a05114e33ff
SUMMARY:Testtermin
STATUS:CONFIRMED
DTSTART;TZID=Europe/Berlin:20161214T120000
DTEND;TZID=Europe/Berlin:20161214T130000
DESCRIPTION:Test "Anführungszeichen" Sonderzeichen!"§$%&amp;/()= Test\n\, . 
 . \, \n\ntest\n
X-MOZ-GENERATION:2
END:VEVENT
END:VCALENDAR</cal:calendar-data>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
</d:multistatus>
groupoffice.txt (7,291 bytes)   
brunt82

brunt82

2016-12-07 11:29

reporter   ~0010959

Maybe there is a relation with 0003530?

brunt82

brunt82

2017-02-08 10:02

reporter   ~0011281

Last edited: 2022-06-29 13:08

Tested with 3.2.6a: Only one quote within the description will lead to another undesired behavior. All lines after a break will not be displayed anymore.

example:

This&quot;is a
test

will lead to a description:

This is a

Related Changesets

sogo: master 6bed6c0e

2022-06-29 20:58

francis


Details Diff
fix(core): don't remove double quotes when parsing versit strings

Fixes 0003530
Fixes 0003930
Affected Issues
0003530, 0003930
mod - SOPE/NGCards/NSDictionary+NGCards.m Diff File
mod - SOPE/NGCards/NSString+NGCards.h Diff File
mod - SOPE/NGCards/NSString+NGCards.m Diff File

Issue History

Date Modified Username Field Change
2016-12-07 11:25 brunt82 New Issue
2016-12-07 11:25 brunt82 File Added: sogo.txt
2016-12-07 11:25 brunt82 File Added: groupoffice.txt
2016-12-07 11:29 brunt82 Note Added: 0010959
2017-02-08 10:02 brunt82 Note Added: 0011281
2017-02-08 10:03 brunt82 Note Edited: 0011281
2017-02-08 16:21 francis Relationship added has duplicate 0004021
2022-06-28 21:17 francis Relationship added duplicate of 0003530
2022-06-29 13:08 francis Note Edited: 0011281
2022-06-29 20:59 francis Changeset attached => sogo master 6bed6c0e
2022-06-29 20:59 francis Assigned To => francis
2022-06-29 20:59 francis Resolution open => fixed
2022-06-29 20:59 francis Status new => resolved
2022-06-29 20:59 francis Resolution fixed => duplicate
2022-06-29 20:59 francis Fixed in Version => 5.7.1