From 002e48c469be2a4506153f692124631d3f3cf13a Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Sat, 28 Jul 2018 10:37:21 -0700 Subject: [PATCH] imwayland: fix potential leak of attr list This fixes a potential leak of a PangoAttrList that is set when chaining up to the parent get_preedit_string(). We check to see if the attr list was created and reuse it instead of leaking the previous value. --- gtk/gtkimcontextwayland.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c index 141ad6c6c9..07d9628915 100644 --- a/gtk/gtkimcontextwayland.c +++ b/gtk/gtkimcontextwayland.c @@ -469,6 +469,9 @@ gtk_im_context_wayland_get_preedit_string (GtkIMContext *context, GtkIMContextWayland *context_wayland = GTK_IM_CONTEXT_WAYLAND (context); const char *preedit_str; + if (attrs) + *attrs = NULL; + GTK_IM_CONTEXT_CLASS (gtk_im_context_wayland_parent_class)->get_preedit_string (context, str, attrs, cursor_pos); /* If the parent implementation returns a len>0 string, go with it */ @@ -490,7 +493,8 @@ gtk_im_context_wayland_get_preedit_string (GtkIMContext *context, if (attrs) { - *attrs = pango_attr_list_new (); + if (!*attrs) + *attrs = pango_attr_list_new (); pango_attr_list_insert (*attrs, pango_attr_underline_new (PANGO_UNDERLINE_SINGLE)); }