aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2018-02-19 21:58:16 +0000
committerdrh <drh@noemail.net>2018-02-19 21:58:16 +0000
commita15a7c352ce0aad7143e589e32a4d9e60f5ce9e2 (patch)
tree55abef9ac3046800e4c53a66aa71025512aa0f71 /src
parent57f29b7bfbc0bc69f2c2f0b73e22a5aa0664d13c (diff)
downloadsqlite-a15a7c352ce0aad7143e589e32a4d9e60f5ce9e2.tar.gz
sqlite-a15a7c352ce0aad7143e589e32a4d9e60f5ce9e2.zip
Printing a value of 0 using %c terminates the string.
FossilOrigin-Name: 255612f0a131f2f522cbca3cc5a1edcf7e38938abca25ba421e7e38a422db9c9
Diffstat (limited to 'src')
-rw-r--r--src/printf.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/printf.c b/src/printf.c
index 725caa2d5..11d5b8282 100644
--- a/src/printf.c
+++ b/src/printf.c
@@ -624,15 +624,16 @@ void sqlite3VXPrintf(
case etCHARX:
if( bArgList ){
bufpt = getTextArg(pArgList);
- length = 0;
+ length = 1;
if( bufpt ){
buf[0] = c = *(bufpt++);
- length = 1;
if( (c&0xc0)==0xc0 ){
while( length<4 && (bufpt[0]&0xc0)==0x80 ){
buf[length++] = *(bufpt++);
}
}
+ }else{
+ buf[0] = 0;
}
}else{
unsigned int ch = va_arg(ap,unsigned int);