diff options
author | drh <drh@noemail.net> | 2015-11-30 22:52:14 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-11-30 22:52:14 +0000 |
commit | c386ef4f2c558e87f44bfef68ce57eaf5055add7 (patch) | |
tree | 30bc2013f73e8d0ce532679ec763938b48a28765 /src | |
parent | 025d2f7ad8d29f25c111b3abb668528b7389570a (diff) | |
download | sqlite-c386ef4f2c558e87f44bfef68ce57eaf5055add7.tar.gz sqlite-c386ef4f2c558e87f44bfef68ce57eaf5055add7.zip |
Add the SQLITE_PRINTF_PRECISION_LIMIT compile-time option.
FossilOrigin-Name: ecad75d69e0d5c83dd3584d363e557e84b65f7f2
Diffstat (limited to 'src')
-rw-r--r-- | src/printf.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/printf.c b/src/printf.c index 9caeef8ff..88bb82e3e 100644 --- a/src/printf.c +++ b/src/printf.c @@ -270,6 +270,12 @@ void sqlite3VXPrintf( testcase( wx>0x7fffffff ); width = wx & 0x7fffffff; } + assert( width>=0 ); +#ifdef SQLITE_PRINTF_PRECISION_LIMIT + if( width>SQLITE_PRINTF_PRECISION_LIMIT ){ + width = SQLITE_PRINTF_PRECISION_LIMIT; + } +#endif /* Get the precision */ if( c=='.' ){ @@ -296,6 +302,14 @@ void sqlite3VXPrintf( }else{ precision = -1; } + assert( precision>=(-1) ); +#ifdef SQLITE_PRINTF_PRECISION_LIMIT + if( precision>SQLITE_PRINTF_PRECISION_LIMIT ){ + precision = SQLITE_PRINTF_PRECISION_LIMIT; + } +#endif + + /* Get the conversion type modifier */ if( c=='l' ){ flag_long = 1; |