Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Increase the size of loop variables in the printf() implementation to avoid integer overflow on multi-gigabyte string arguments. CVE-2022-35737. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
aab790a16e1bdff78759f9c9ae87a255 |
User & Date: | drh 2022-07-18 15:02:01.000 |
Original Comment: | Increase the size of loop variables in the printf() implementation to avoid harmless compiler warnings. |
Context
2022-07-18
| ||
18:13 | Add the "testrunner" makefile target. (check-in: 954c659315 user: drh tags: trunk) | |
15:27 | Increase the size of loop variables in the printf() implementation to avoid integer overflow on multi-gigabyte string arguments. CVE-2022-35737. (check-in: 26db4fc22f user: drh tags: branch-3.39) | |
15:02 | Increase the size of loop variables in the printf() implementation to avoid integer overflow on multi-gigabyte string arguments. CVE-2022-35737. (check-in: aab790a16e user: drh tags: trunk) | |
13:55 | Enhance the REGEXP extension so that it will accept the start-of-input mark ("^") in the middle of parentheses. Forum post 0d6a9160f81ef1a8. (check-in: ed8a8ebd62 user: drh tags: trunk) | |
Changes
Changes to src/printf.c.
︙ | ︙ | |||
799 800 801 802 803 804 805 | int ii = length - 1; while( ii>=0 ) if( (bufpt[ii--] & 0xc0)==0x80 ) width++; } break; case etSQLESCAPE: /* %q: Escape ' characters */ case etSQLESCAPE2: /* %Q: Escape ' and enclose in '...' */ case etSQLESCAPE3: { /* %w: Escape " characters */ | | | | 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 | int ii = length - 1; while( ii>=0 ) if( (bufpt[ii--] & 0xc0)==0x80 ) width++; } break; case etSQLESCAPE: /* %q: Escape ' characters */ case etSQLESCAPE2: /* %Q: Escape ' and enclose in '...' */ case etSQLESCAPE3: { /* %w: Escape " characters */ i64 i, j, k, n; int needQuote, isnull; char ch; char q = ((xtype==etSQLESCAPE3)?'"':'\''); /* Quote character */ char *escarg; if( bArgList ){ escarg = getTextArg(pArgList); }else{ |
︙ | ︙ |