diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2012-12-02 15:11:42 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2012-12-02 15:11:42 -0800 |
commit | 2dd2e62273983693076360e1bc4e59a0f9184c68 (patch) | |
tree | 5d841624594f6b9152ea619c8f663a189be95cdd /src/doprnt.c | |
parent | db47d5e975dc5bd647f7c6132e7f9eb196f2614f (diff) | |
download | emacs-2dd2e62273983693076360e1bc4e59a0f9184c68.tar.gz |
Fix xpalloc confusion after memory is exhausted.
* alloc.c (xpalloc): Comment fix.
* charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
and signals an error, do not clear charset_table_size, as
charset_table is still valid.
* doprnt.c (evxprintf): Clear *BUF after freeing it.
Diffstat (limited to 'src/doprnt.c')
-rw-r--r-- | src/doprnt.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/doprnt.c b/src/doprnt.c index caa56d6ae88..8cab219aafa 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -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); } } |