Fossil SCM

Additional rebustness improvements for BOM handling.

drh 2019-09-23 20:03 trunk
Commit 9d962928718e95fbe43c10e06ab2db1e4e39a8965dbf8c372d1620b8c48a71b9
1 file changed +4 -2
+4 -2
--- src/blob.c
+++ src/blob.c
@@ -333,11 +333,13 @@
333333
blob_is_init(p);
334334
if( p->nUsed==0 ){
335335
blob_append_char(p, 0); /* NOTE: Changes nUsed. */
336336
p->nUsed = 0;
337337
}
338
- if( p->aData[p->nUsed]!=0 ){
338
+ if( p->nUsed<p->nAlloc ){
339
+ p->aData[p->nUsed] = 0;
340
+ }else{
339341
blob_materialize(p);
340342
}
341343
return p->aData;
342344
}
343345
@@ -1352,11 +1354,11 @@
13521354
zUtf8[i] = zUtf8[i-1];
13531355
zUtf8[--i] = zTemp;
13541356
}
13551357
}
13561358
/* Make sure the blob contains two terminating 0-bytes */
1357
- blob_append_char(pBlob, 0);
1359
+ blob_append(pBlob, "\000\000", 3);
13581360
zUtf8 = blob_str(pBlob) + bomSize;
13591361
zUtf8 = fossil_unicode_to_utf8(zUtf8);
13601362
blob_set_dynamic(pBlob, zUtf8);
13611363
}else if( useMbcs && invalid_utf8(pBlob) ){
13621364
#if defined(_WIN32) || defined(__CYGWIN__)
13631365
--- src/blob.c
+++ src/blob.c
@@ -333,11 +333,13 @@
333 blob_is_init(p);
334 if( p->nUsed==0 ){
335 blob_append_char(p, 0); /* NOTE: Changes nUsed. */
336 p->nUsed = 0;
337 }
338 if( p->aData[p->nUsed]!=0 ){
 
 
339 blob_materialize(p);
340 }
341 return p->aData;
342 }
343
@@ -1352,11 +1354,11 @@
1352 zUtf8[i] = zUtf8[i-1];
1353 zUtf8[--i] = zTemp;
1354 }
1355 }
1356 /* Make sure the blob contains two terminating 0-bytes */
1357 blob_append_char(pBlob, 0);
1358 zUtf8 = blob_str(pBlob) + bomSize;
1359 zUtf8 = fossil_unicode_to_utf8(zUtf8);
1360 blob_set_dynamic(pBlob, zUtf8);
1361 }else if( useMbcs && invalid_utf8(pBlob) ){
1362 #if defined(_WIN32) || defined(__CYGWIN__)
1363
--- src/blob.c
+++ src/blob.c
@@ -333,11 +333,13 @@
333 blob_is_init(p);
334 if( p->nUsed==0 ){
335 blob_append_char(p, 0); /* NOTE: Changes nUsed. */
336 p->nUsed = 0;
337 }
338 if( p->nUsed<p->nAlloc ){
339 p->aData[p->nUsed] = 0;
340 }else{
341 blob_materialize(p);
342 }
343 return p->aData;
344 }
345
@@ -1352,11 +1354,11 @@
1354 zUtf8[i] = zUtf8[i-1];
1355 zUtf8[--i] = zTemp;
1356 }
1357 }
1358 /* Make sure the blob contains two terminating 0-bytes */
1359 blob_append(pBlob, "\000\000", 3);
1360 zUtf8 = blob_str(pBlob) + bomSize;
1361 zUtf8 = fossil_unicode_to_utf8(zUtf8);
1362 blob_set_dynamic(pBlob, zUtf8);
1363 }else if( useMbcs && invalid_utf8(pBlob) ){
1364 #if defined(_WIN32) || defined(__CYGWIN__)
1365

Keyboard Shortcuts

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