[Commits] [SCM] claws branch, master, updated. 3.18.0-104-gac7ee135c
wwp at claws-mail.org
wwp at claws-mail.org
Sat Sep 11 22:24:39 CEST 2021
The branch, master has been updated
via ac7ee135c7babde03957ed7da0ee24705173df3d (commit)
from ce233134436cf307b442b4815a1c10f68b05fb91 (commit)
Summary of changes:
src/action.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
- Log -----------------------------------------------------------------
commit ac7ee135c7babde03957ed7da0ee24705173df3d
Author: wwp <subscript at free.fr>
Date: Sat Sep 11 22:22:58 2021 +0200
Fix CID 1491207, 1491213 and 1491253: ensure string in buffer is 0-ended,
and two resource (possible) leaks.
diff --git a/src/action.c b/src/action.c
index d00653d0d..50dc54c75 100644
--- a/src/action.c
+++ b/src/action.c
@@ -1042,11 +1042,13 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str,
int r;
ret_str = g_locale_from_utf8(msg_str, strlen(msg_str),
&by_read, &by_written, NULL);
- if (ret_str && by_written) {
+ if (ret_str && by_written)
r = write(chld_in, ret_str, strlen(ret_str));
- g_free(ret_str);
- } else
+ else
r = write(chld_in, msg_str, strlen(msg_str));
+ if (ret_str)
+ g_free(ret_str);
+
if (!(children->action_type &
(ACTION_USER_IN | ACTION_USER_HIDDEN_IN)))
r = close(chld_in);
@@ -1571,15 +1573,15 @@ static void catch_output(gpointer data, gint source, GIOCondition cond)
if (c == 0)
break;
+ buf[c] = 0;
ret_str = g_locale_to_utf8
- (buf, c - 1, &bytes_read, &bytes_written, NULL);
- if (ret_str && bytes_written > 0) {
- gtk_text_buffer_insert
- (textbuf, &iter, ret_str,
- -1);
+ (buf, c, &bytes_read, &bytes_written, NULL);
+ if (ret_str && bytes_written > 0)
+ gtk_text_buffer_insert(textbuf, &iter, ret_str, -1);
+ else
+ gtk_text_buffer_insert(textbuf, &iter, buf, c);
+ if (ret_str)
g_free(ret_str);
- } else
- gtk_text_buffer_insert(textbuf, &iter, buf, c - 1);
}
if (child_info->children->is_selection) {
@@ -1595,6 +1597,7 @@ static void catch_output(gpointer data, gint source, GIOCondition cond)
gsize bytes_read = 0, bytes_written = 0;
gchar *ret_str;
+ buf[c] = 0;
ret_str = g_locale_to_utf8
(buf, c, &bytes_read, &bytes_written, NULL);
if (ret_str && bytes_written > 0) {
-----------------------------------------------------------------------
hooks/post-receive
--
Claws Mail
More information about the Commits
mailing list