aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-08-29 08:51:23 -0700
committerPaul Eggert2011-08-29 08:51:23 -0700
commit9d1df220c5484374901f8edff05e41bb575c0c77 (patch)
tree91cd2f25696ada0a504fba2cdc7cb78618af7bf1 /src
parent2ea16b8969850fd2952ca80239cf37e77d0e7edd (diff)
downloademacs-9d1df220c5484374901f8edff05e41bb575c0c77.tar.gz
emacs-9d1df220c5484374901f8edff05e41bb575c0c77.zip
* dispnew.c (add_window_display_history): Don't overrun buffer.
Truncate instead; this is OK since it's just a log.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog3
-rw-r--r--src/dispnew.c19
2 files changed, 13 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 307174268bc..4336d6a6b83 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -23,6 +23,9 @@
23 * dbusbind.c (xd_signature, Fdbus_register_signal): 23 * dbusbind.c (xd_signature, Fdbus_register_signal):
24 Do not overrun buffer; instead, report string overflow. 24 Do not overrun buffer; instead, report string overflow.
25 25
26 * dispnew.c (add_window_display_history): Don't overrun buffer.
27 Truncate instead; this is OK since it's just a log.
28
262011-08-26 Paul Eggert <eggert@cs.ucla.edu> 292011-08-26 Paul Eggert <eggert@cs.ucla.edu>
27 30
28 Integer and memory overflow issues (Bug#9196). 31 Integer and memory overflow issues (Bug#9196).
diff --git a/src/dispnew.c b/src/dispnew.c
index e96583e0025..0cc888b4b7a 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -272,15 +272,16 @@ add_window_display_history (struct window *w, const char *msg, int paused_p)
272 buf = redisplay_history[history_idx].trace; 272 buf = redisplay_history[history_idx].trace;
273 ++history_idx; 273 ++history_idx;
274 274
275 sprintf (buf, "%"pMu": window %p (`%s')%s\n", 275 esnprintf (buf, sizeof redisplay_history[0].trace,
276 history_tick++, 276 "%"pMu": window %p (`%s')%s\n%s",
277 w, 277 history_tick++,
278 ((BUFFERP (w->buffer) 278 w,
279 && STRINGP (BVAR (XBUFFER (w->buffer), name))) 279 ((BUFFERP (w->buffer)
280 ? SSDATA (BVAR (XBUFFER (w->buffer), name)) 280 && STRINGP (BVAR (XBUFFER (w->buffer), name)))
281 : "???"), 281 ? SSDATA (BVAR (XBUFFER (w->buffer), name))
282 paused_p ? " ***paused***" : ""); 282 : "???"),
283 strcat (buf, msg); 283 paused_p ? " ***paused***" : "",
284 msg);
284} 285}
285 286
286 287