diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-07-30 09:32:15 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-07-30 09:32:15 +0000 |
commit | 12fbad8c30256b0b7a9681f0e7a63cf0ca690d1f (patch) | |
tree | 2b0f8b2f78f49f753499eeca7e236b2b0b777f0a /src | |
parent | 302e309cce611ce1f44c5ab3aa0cb3ec7d43ca7c (diff) | |
download | mpfr-12fbad8c30256b0b7a9681f0e7a63cf0ca690d1f.tar.gz |
[src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer
in case of error.
(merged part of changeset r12957 from the trunk)
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/4.0@12965 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src')
-rw-r--r-- | src/vasprintf.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/vasprintf.c b/src/vasprintf.c index b4fee3477..19d9998bc 100644 --- a/src/vasprintf.c +++ b/src/vasprintf.c @@ -2320,8 +2320,10 @@ mpfr_vasnprintf_aux (char **ptr, char *Buf, size_t size, const char *fmt, } MPFR_SAVE_EXPO_FREE (expo); - *ptr = NULL; - mpfr_free_func (buf.start, buf.size); + if (ptr != NULL) /* implement mpfr_vasprintf */ + *ptr = NULL; + if (ptr != NULL || size != 0) + mpfr_free_func (buf.start, buf.size); return -1; } |