Fossil SCM

More minor fixes resulting from a code audit.

drh 2025-04-19 23:24 th1-taint
Commit b1711046d9ede06eb77fcc8e03a8f119fc8aca8fb9a70a55efca8b02c6d8f212
3 files changed +9 -5 +2 -1 +3 -3
+9 -5
--- src/th.c
+++ src/th.c
@@ -1875,24 +1875,28 @@
18751875
int *pnStr, /* IN/OUT: Current length of *pzStr */
18761876
const char *zElem, /* Data to append */
18771877
int nElem /* Length of nElem */
18781878
){
18791879
char *zNew;
1880
- int nNew;
1880
+ long long int nNew;
1881
+ int nn;
18811882
18821883
if( nElem<0 ){
1883
- nElem = th_strlen(zElem);
1884
+ nn = th_strlen(zElem);
1885
+ }else{
1886
+ nn = TH1_LEN(nElem);
18841887
}
18851888
1886
- nNew = *pnStr + nElem;
1889
+ nNew = TH1_LEN(*pnStr) + nn;
1890
+ TH1_SIZECHECK(nNew);
18871891
zNew = Th_Malloc(interp, nNew);
18881892
th_memcpy(zNew, *pzStr, *pnStr);
1889
- th_memcpy(&zNew[*pnStr], zElem, nElem);
1893
+ th_memcpy(&zNew[TH1_LEN(*pnStr)], zElem, nn);
18901894
18911895
Th_Free(interp, *pzStr);
18921896
*pzStr = zNew;
1893
- *pnStr = nNew;
1897
+ *pnStr = (int)nNew;
18941898
18951899
return TH_OK;
18961900
}
18971901
18981902
/*
18991903
--- src/th.c
+++ src/th.c
@@ -1875,24 +1875,28 @@
1875 int *pnStr, /* IN/OUT: Current length of *pzStr */
1876 const char *zElem, /* Data to append */
1877 int nElem /* Length of nElem */
1878 ){
1879 char *zNew;
1880 int nNew;
 
1881
1882 if( nElem<0 ){
1883 nElem = th_strlen(zElem);
 
 
1884 }
1885
1886 nNew = *pnStr + nElem;
 
1887 zNew = Th_Malloc(interp, nNew);
1888 th_memcpy(zNew, *pzStr, *pnStr);
1889 th_memcpy(&zNew[*pnStr], zElem, nElem);
1890
1891 Th_Free(interp, *pzStr);
1892 *pzStr = zNew;
1893 *pnStr = nNew;
1894
1895 return TH_OK;
1896 }
1897
1898 /*
1899
--- src/th.c
+++ src/th.c
@@ -1875,24 +1875,28 @@
1875 int *pnStr, /* IN/OUT: Current length of *pzStr */
1876 const char *zElem, /* Data to append */
1877 int nElem /* Length of nElem */
1878 ){
1879 char *zNew;
1880 long long int nNew;
1881 int nn;
1882
1883 if( nElem<0 ){
1884 nn = th_strlen(zElem);
1885 }else{
1886 nn = TH1_LEN(nElem);
1887 }
1888
1889 nNew = TH1_LEN(*pnStr) + nn;
1890 TH1_SIZECHECK(nNew);
1891 zNew = Th_Malloc(interp, nNew);
1892 th_memcpy(zNew, *pzStr, *pnStr);
1893 th_memcpy(&zNew[TH1_LEN(*pnStr)], zElem, nn);
1894
1895 Th_Free(interp, *pzStr);
1896 *pzStr = zNew;
1897 *pnStr = (int)nNew;
1898
1899 return TH_OK;
1900 }
1901
1902 /*
1903
+2 -1
--- src/th_lang.c
+++ src/th_lang.c
@@ -362,13 +362,14 @@
362362
return Th_WrongNumArgs(interp, "lsearch list string");
363363
}
364364
365365
rc = Th_SplitList(interp, argv[1], argl[1], &azElem, &anElem, &nCount);
366366
if( rc==TH_OK ){
367
+ int nn = TH1_LEN(argl[2]);
367368
Th_SetResultInt(interp, -1);
368369
for(i=0; i<nCount; i++){
369
- if( anElem[i]==argl[2] && 0==memcmp(azElem[i], argv[2], argl[2]) ){
370
+ if( TH1_LEN(anElem[i])==nn && 0==memcmp(azElem[i], argv[2], nn) ){
370371
Th_SetResultInt(interp, i);
371372
break;
372373
}
373374
}
374375
Th_Free(interp, azElem);
375376
--- src/th_lang.c
+++ src/th_lang.c
@@ -362,13 +362,14 @@
362 return Th_WrongNumArgs(interp, "lsearch list string");
363 }
364
365 rc = Th_SplitList(interp, argv[1], argl[1], &azElem, &anElem, &nCount);
366 if( rc==TH_OK ){
 
367 Th_SetResultInt(interp, -1);
368 for(i=0; i<nCount; i++){
369 if( anElem[i]==argl[2] && 0==memcmp(azElem[i], argv[2], argl[2]) ){
370 Th_SetResultInt(interp, i);
371 break;
372 }
373 }
374 Th_Free(interp, azElem);
375
--- src/th_lang.c
+++ src/th_lang.c
@@ -362,13 +362,14 @@
362 return Th_WrongNumArgs(interp, "lsearch list string");
363 }
364
365 rc = Th_SplitList(interp, argv[1], argl[1], &azElem, &anElem, &nCount);
366 if( rc==TH_OK ){
367 int nn = TH1_LEN(argl[2]);
368 Th_SetResultInt(interp, -1);
369 for(i=0; i<nCount; i++){
370 if( TH1_LEN(anElem[i])==nn && 0==memcmp(azElem[i], argv[2], nn) ){
371 Th_SetResultInt(interp, i);
372 break;
373 }
374 }
375 Th_Free(interp, azElem);
376
+3 -3
--- src/tkt.c
+++ src/tkt.c
@@ -818,15 +818,15 @@
818818
if( argc!=3 ){
819819
return Th_WrongNumArgs(interp, "append_field FIELD STRING");
820820
}
821821
if( g.thTrace ){
822822
Th_Trace("append_field %#h {%#h}<br>\n",
823
- argl[1], argv[1], argl[2], argv[2]);
823
+ TH1_LEN(argl[1]), argv[1], TH1_LEN(argl[2]), argv[2]);
824824
}
825825
for(idx=0; idx<nField; idx++){
826
- if( memcmp(aField[idx].zName, argv[1], argl[1])==0
827
- && aField[idx].zName[argl[1]]==0 ){
826
+ if( memcmp(aField[idx].zName, argv[1], TH1_LEN(argl[1]))==0
827
+ && aField[idx].zName[TH1_LEN(argl[1])]==0 ){
828828
break;
829829
}
830830
}
831831
if( idx>=nField ){
832832
Th_ErrorMessage(g.interp, "no such TICKET column: ", argv[1], argl[1]);
833833
--- src/tkt.c
+++ src/tkt.c
@@ -818,15 +818,15 @@
818 if( argc!=3 ){
819 return Th_WrongNumArgs(interp, "append_field FIELD STRING");
820 }
821 if( g.thTrace ){
822 Th_Trace("append_field %#h {%#h}<br>\n",
823 argl[1], argv[1], argl[2], argv[2]);
824 }
825 for(idx=0; idx<nField; idx++){
826 if( memcmp(aField[idx].zName, argv[1], argl[1])==0
827 && aField[idx].zName[argl[1]]==0 ){
828 break;
829 }
830 }
831 if( idx>=nField ){
832 Th_ErrorMessage(g.interp, "no such TICKET column: ", argv[1], argl[1]);
833
--- src/tkt.c
+++ src/tkt.c
@@ -818,15 +818,15 @@
818 if( argc!=3 ){
819 return Th_WrongNumArgs(interp, "append_field FIELD STRING");
820 }
821 if( g.thTrace ){
822 Th_Trace("append_field %#h {%#h}<br>\n",
823 TH1_LEN(argl[1]), argv[1], TH1_LEN(argl[2]), argv[2]);
824 }
825 for(idx=0; idx<nField; idx++){
826 if( memcmp(aField[idx].zName, argv[1], TH1_LEN(argl[1]))==0
827 && aField[idx].zName[TH1_LEN(argl[1])]==0 ){
828 break;
829 }
830 }
831 if( idx>=nField ){
832 Th_ErrorMessage(g.interp, "no such TICKET column: ", argv[1], argl[1]);
833

Keyboard Shortcuts

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