Fossil SCM
Fix an off-by-one error in the BOM decoder.
Commit
b3f45b334bd5d133f4c8a3189f5724ef337681572785640673981880b90dcfdd
Parent
265f8e2d8337f4c…
1 file changed
+1
-1
+1
-1
| --- src/blob.c | ||
| +++ src/blob.c | ||
| @@ -1344,11 +1344,11 @@ | ||
| 1344 | 1344 | }else if( starts_with_utf16_bom(pBlob, &bomSize, &bomReverse) ){ |
| 1345 | 1345 | zUtf8 = blob_buffer(pBlob); |
| 1346 | 1346 | if( bomReverse ){ |
| 1347 | 1347 | /* Found BOM, but with reversed bytes */ |
| 1348 | 1348 | unsigned int i = blob_size(pBlob); |
| 1349 | - while( i>0 ){ | |
| 1349 | + while( i>1 ){ | |
| 1350 | 1350 | /* swap bytes of unicode representation */ |
| 1351 | 1351 | char zTemp = zUtf8[--i]; |
| 1352 | 1352 | zUtf8[i] = zUtf8[i-1]; |
| 1353 | 1353 | zUtf8[--i] = zTemp; |
| 1354 | 1354 | } |
| 1355 | 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>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 |