aboutsummaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-12-13 23:38:57 +0000
committerdrh <drh@noemail.net>2019-12-13 23:38:57 +0000
commite3a4f2cf77e7608cf7ba746b2517559015dad9c0 (patch)
treeaffc0bde6e6c012aed06d61efcd8d5fc24935804 /src/util.c
parent0f1fa5de045a3f1b8c08373ace7adea04ab81021 (diff)
downloadsqlite-e3a4f2cf77e7608cf7ba746b2517559015dad9c0.tar.gz
sqlite-e3a4f2cf77e7608cf7ba746b2517559015dad9c0.zip
Fix an utterly harmless "applying zero offset to null pointer" UB warning
in sqlite3AtoF(): FossilOrigin-Name: 052fdf5e58b41ccadaa5aac293ceb4d309ced661d46f3a52be9eb8d01d347a82
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/util.c b/src/util.c
index 2c14911b6..f7a993a76 100644
--- a/src/util.c
+++ b/src/util.c
@@ -389,7 +389,7 @@ static LONGDOUBLE_TYPE sqlite3Pow10(int E){
int sqlite3AtoF(const char *z, double *pResult, int length, u8 enc){
#ifndef SQLITE_OMIT_FLOATING_POINT
int incr;
- const char *zEnd = z + length;
+ const char *zEnd;
/* sign * significand * (10 ^ (esign * exponent)) */
int sign = 1; /* sign of significand */
i64 s = 0; /* significand */
@@ -403,9 +403,11 @@ int sqlite3AtoF(const char *z, double *pResult, int length, u8 enc){
assert( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE );
*pResult = 0.0; /* Default return value, in case of an error */
+ if( length==0 ) return 0;
if( enc==SQLITE_UTF8 ){
incr = 1;
+ zEnd = z + length;
}else{
int i;
incr = 2;