aboutsummaryrefslogtreecommitdiff
path: root/src/printf.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2015-12-02 20:40:26 +0000
committerdrh <drh@noemail.net>2015-12-02 20:40:26 +0000
commit1bb15fc973f5b1b472897095f629abcc663bd453 (patch)
tree4eda31846a69354eb5ba5ff9dc91602a18d942ac /src/printf.c
parent769dc6e2a22b3104583ad357b01f31a22e146a5c (diff)
parentf7ce4291a94573cdb04e5f3fcf59ed9e69226479 (diff)
downloadsqlite-1bb15fc973f5b1b472897095f629abcc663bd453.tar.gz
sqlite-1bb15fc973f5b1b472897095f629abcc663bd453.zip
Merge recent enhancements from trunk.
FossilOrigin-Name: d1a1278d7f3306536dc9cbd8fb300898f1e373e8
Diffstat (limited to 'src/printf.c')
-rw-r--r--src/printf.c14
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;