Fossil SCM

Fix an off-by-one error in the BOM decoder.

drh 2019-09-23 19:35 trunk
Commit b3f45b334bd5d133f4c8a3189f5724ef337681572785640673981880b90dcfdd
1 file changed +1 -1
+1 -1
--- src/blob.c
+++ src/blob.c
@@ -1344,11 +1344,11 @@
13441344
}else if( starts_with_utf16_bom(pBlob, &bomSize, &bomReverse) ){
13451345
zUtf8 = blob_buffer(pBlob);
13461346
if( bomReverse ){
13471347
/* Found BOM, but with reversed bytes */
13481348
unsigned int i = blob_size(pBlob);
1349
- while( i>0 ){
1349
+ while( i>1 ){
13501350
/* swap bytes of unicode representation */
13511351
char zTemp = zUtf8[--i];
13521352
zUtf8[i] = zUtf8[i-1];
13531353
zUtf8[--i] = zTemp;
13541354
}
13551355
--- src/blob.c
+++ src/blob.c
@@ -1344,11 +1344,11 @@
1344 }else if( starts_with_utf16_bom(pBlob, &bomSize, &bomReverse) ){
1345 zUtf8 = blob_buffer(pBlob);
1346 if( bomReverse ){
1347 /* Found BOM, but with reversed bytes */
1348 unsigned int i = blob_size(pBlob);
1349 while( i>0 ){
1350 /* swap bytes of unicode representation */
1351 char zTemp = zUtf8[--i];
1352 zUtf8[i] = zUtf8[i-1];
1353 zUtf8[--i] = zTemp;
1354 }
1355
--- src/blob.c
+++ src/blob.c
@@ -1344,11 +1344,11 @@
1344 }else if( starts_with_utf16_bom(pBlob, &bomSize, &bomReverse) ){
1345 zUtf8 = blob_buffer(pBlob);
1346 if( bomReverse ){
1347 /* Found BOM, but with reversed bytes */
1348 unsigned int i = blob_size(pBlob);
1349 while( i>1 ){
1350 /* swap bytes of unicode representation */
1351 char zTemp = zUtf8[--i];
1352 zUtf8[i] = zUtf8[i-1];
1353 zUtf8[--i] = zTemp;
1354 }
1355

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button