summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/vasprintf.c6
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;
}