diff options
author | drh <drh@noemail.net> | 2019-12-13 23:38:57 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-12-13 23:38:57 +0000 |
commit | e3a4f2cf77e7608cf7ba746b2517559015dad9c0 (patch) | |
tree | affc0bde6e6c012aed06d61efcd8d5fc24935804 /src/util.c | |
parent | 0f1fa5de045a3f1b8c08373ace7adea04ab81021 (diff) | |
download | sqlite-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.c | 4 |
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; |