X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/dacbc44ca3fc825c9e5ffa799f1a0937c1da0020..4d89ee379aae4a0d087fa6734524e59e37b9cbc5:/src/doprnt.c diff --git a/src/doprnt.c b/src/doprnt.c index 6c43d00052..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-2013 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); } }