From 9e50574dcfbeb02c210a1b2639e590d45fbfcc10 Mon Sep 17 00:00:00 2001 From: Matthew Mondor Date: Mon, 14 Aug 2023 04:25:35 +0000 Subject: [PATCH] AnalogTerm2: Clear clipboard selection memory when freeing it. --- mmsoftware/analogterm2/TODO.txt | 1 - mmsoftware/analogterm2/src/screen.c | 5 +++++ mmsoftware/analogterm2/src/timer.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mmsoftware/analogterm2/TODO.txt b/mmsoftware/analogterm2/TODO.txt index cad5637..fab1eba 100644 --- a/mmsoftware/analogterm2/TODO.txt +++ b/mmsoftware/analogterm2/TODO.txt @@ -56,7 +56,6 @@ - ☺ and others - Character graphics before 🭨 https://en.wikipedia.org/wiki/Box-drawing_character -- Overwrite/clear selections before freeing them - ≣ † ☆ ツ ⌘›🍺∴ ( ͡° ͜ʖ ͡°) ƒ ︵ ₂ 😈 θ ƒ › ʼ ƒ ∂ ʻ μ › ∫ ◇ ♪ ► ə β ə ſ ρ ə ∴ ♪ 😱 † 😳 › ▛ ᵗ * ‽ ℣ Ω ⌘   ❇ ⸮ - Verify if dead key support is incomplete for ISO-8859-4 and ISO-8859-10. diff --git a/mmsoftware/analogterm2/src/screen.c b/mmsoftware/analogterm2/src/screen.c index d52dd41..a26cbea 100644 --- a/mmsoftware/analogterm2/src/screen.c +++ b/mmsoftware/analogterm2/src/screen.c @@ -804,6 +804,7 @@ screen_select_end(state_t *st, XButtonEvent *bev) else st->nselected = 0; } + (void)memset(buf, 0, bufsize * sizeof(uint32_t)); free(buf); done: @@ -876,6 +877,8 @@ screen_select_clear(state_t *st) { if (st->selected != NULL) { + (void)memset(st->selected, 0, + st->nselected * sizeof(uint32_t)); free(st->selected); st->selected = NULL; st->nselected = 0; @@ -959,6 +962,7 @@ send_utf8_string(state_t *st, Display *dpy, XSelectionRequestEvent *sev) ssev.time = sev->time; XSendEvent(dpy, sev->requestor, True, NoEventMask, (XEvent *)&ssev); + (void)memset(bytes, '\0', st->nselected * UTF8_MAX_BYTES); free(bytes); } @@ -990,6 +994,7 @@ send_string(state_t *st, Display *dpy, XSelectionRequestEvent *sev) ssev.time = sev->time; XSendEvent(dpy, sev->requestor, True, NoEventMask, (XEvent *)&ssev); + (void)memset(string, '\0', st->nselected); free(string); } diff --git a/mmsoftware/analogterm2/src/timer.c b/mmsoftware/analogterm2/src/timer.c index 047e1be..d417048 100644 --- a/mmsoftware/analogterm2/src/timer.c +++ b/mmsoftware/analogterm2/src/timer.c @@ -68,7 +68,7 @@ timer_init(state_t *st) /* * General timer, used to refresh the display, toggle the exported * draw_*_blink_state, decrease tick timers, etc. - * XXX Maybe move to timer.c or main.c + * Called at frequency in microseconds, typically 30Hz. */ static void alarm_sighandler(int sig) -- 2.9.0