diff options
author | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2010-04-07 13:59:02 +0400 |
---|---|---|
committer | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2010-04-07 13:59:02 +0400 |
commit | ee13669126e4a2c3ed8b86aa03d723a87d6a2de7 (patch) | |
tree | b27bd8361f4b5418724f82dd5ab573a30e1b540c /strings/dtoa.c | |
parent | 6da92d8f1973aed699bc88450211bb30f6ef5750 (diff) | |
download | mariadb-git-ee13669126e4a2c3ed8b86aa03d723a87d6a2de7.tar.gz |
Bug #52165: Assertion failed: file .\dtoa.c, line 465
The failing assertion was written with the assumption that a NULL
string can never be passed to my_strtod(). However, an empty string
may be passed under some circumstances by passing str == NULL and
*end == NULL.
Fixed the assertion to take the above case into account.
mysql-test/r/func_misc.result:
Added a test case for bug #52165.
mysql-test/t/func_misc.test:
Added a test case for bug #52165.
strings/dtoa.c:
Fixed the assertion in my_strtod() to take the case of 'str == NULL
&& *end == NULL' into account.
Diffstat (limited to 'strings/dtoa.c')
-rw-r--r-- | strings/dtoa.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/strings/dtoa.c b/strings/dtoa.c index 88e0d9272a8..75a05be2c56 100644 --- a/strings/dtoa.c +++ b/strings/dtoa.c @@ -462,7 +462,9 @@ double my_strtod(const char *str, char **end, int *error) { char buf[DTOA_BUFF_SIZE]; double res; - DBUG_ASSERT(str != NULL && end != NULL && *end != NULL && error != NULL); + DBUG_ASSERT(end != NULL && ((str != NULL && *end != NULL) || + (str == NULL && *end == NULL)) && + error != NULL); res= my_strtod_int(str, end, error, buf, sizeof(buf)); return (*error == 0) ? res : (res < 0 ? -DBL_MAX : DBL_MAX); |