X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/e61d39cddfd015032a6419ce75c36ecdf1e9fe9f..b1c4d6861e0f1e84c37c3df034b1f6d6dea7dcbf:/src/doprnt.c diff --git a/src/doprnt.c b/src/doprnt.c index caa56d6ae8..cc4d0e4677 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -1,7 +1,7 @@ /* Output like sprintf to a buffer of specified size. Also takes args differently: pass one pointer to the end of the format string in addition to the format string itself. - Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. + Copyright (C) 1985, 2001-2014 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -38,7 +38,7 @@ along with GNU Emacs. If not, see . */ could include embedded null characters. . It signals an error if the length of the formatted string is about to - overflow MOST_POSITIVE_FIXNUM, to avoid producing strings longer than what + overflow ptrdiff_t or size_t, to avoid producing strings longer than what Emacs can handle. OTOH, this function supports only a small subset of the standard C formatted @@ -521,7 +521,10 @@ evxprintf (char **buf, ptrdiff_t *bufsize, if (nbytes < *bufsize - 1) return nbytes; if (*buf != nonheapbuf) - xfree (*buf); + { + xfree (*buf); + *buf = NULL; + } *buf = xpalloc (NULL, bufsize, 1, bufsize_max, 1); } }