View Issue Details

IDProjectCategoryView StatusLast Update
0002700SymmetricDSBugpublic2016-08-08 09:08
ReportermmichalekAssigned Tommichalek 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version3.7.36 
Target Version3.7.37Fixed in Version3.7.37 
Summary0002700: C Client doesn't properly parse quote characters in incoming data.
DescriptionOriginally Reported by cifwig at https://github.com/JumpMind/symmetric-ds/issues/23

We have found that in case data in source database contains double quotes, synchronization won't work properly which results in data corruption.

The reason is different escaping rules in SymDS backend and libcsv.

SymmetricDS will produce following output:
"field1","field2","field\"3","field4"

However libcsv doesn't recognize this kind of escaping approach. This leads to storing value 'field' instead of 'field"3'. libcsv expects double quote escaping by using double quote instead of backslash. It means that for proper data import dump should looks as follows
"field1","field2","field""3","field4"

We have observed this issue in action in JSONs stored in the database which were totally corrupted during the import phase.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.7 76ad0922

2016-07-29 16:21:54

mmichalek

Details Diff
0002700: C Client doesn't properly parse quote characters in incoming
data.

0002700
mod - symmetric-client-clib-test/run/symclient_test.launch Diff File
mod - symmetric-client-clib-test/src/symclient_test.c Diff File
mod - symmetric-client-clib-test/src/util/StringUtilsTest.c Diff File
mod - symmetric-client-clib/inc/io/reader/ProtocolDataReader.h Diff File
mod - symmetric-client-clib/inc/util/StringUtils.h Diff File
mod - symmetric-client-clib/src/io/reader/ProtocolDataReader.c Diff File
mod - symmetric-client-clib/src/util/StringUtils.c Diff File
mod - symmetric-client-native/.cproject Diff File
mod - symmetric-client-native/run/sym (linux).launch Diff File

Issue History

Date Modified Username Field Change
2016-07-29 16:19 mmichalek New Issue
2016-07-29 16:19 mmichalek Status new => assigned
2016-07-29 16:19 mmichalek Assigned To => mmichalek
2016-07-29 16:22 mmichalek Status assigned => resolved
2016-07-29 16:22 mmichalek Resolution open => fixed
2016-07-29 16:22 mmichalek Platform => C Client
2016-07-29 16:22 mmichalek Fixed in Version => 3.7.37
2016-07-29 17:00 mmichalek Changeset attached => SymmetricDS 3.7 76ad0922
2016-08-08 09:08 elong Status resolved => closed