summaryrefslogtreecommitdiff
path: root/src/doprnt.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2012-12-02 15:11:42 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2012-12-02 15:11:42 -0800
commit2dd2e62273983693076360e1bc4e59a0f9184c68 (patch)
tree5d841624594f6b9152ea619c8f663a189be95cdd /src/doprnt.c
parentdb47d5e975dc5bd647f7c6132e7f9eb196f2614f (diff)
downloademacs-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.c5
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);
}
}