From 4b2977d601eba63fd303ebbcdcaf8a5c3446d993 Mon Sep 17 00:00:00 2001 From: Hysterical Raisins Date: Thu, 11 Jul 2019 13:26:04 +0200 Subject: [PATCH] Plug 3 leaks --- eekboard/eekboard-context-service.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/eekboard/eekboard-context-service.c b/eekboard/eekboard-context-service.c index 101e834f..1b298223 100644 --- a/eekboard/eekboard-context-service.c +++ b/eekboard/eekboard-context-service.c @@ -1,7 +1,7 @@ -/* +/* * Copyright (C) 2010-2011 Daiki Ueno * Copyright (C) 2010-2011 Red Hat, Inc. - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or @@ -150,13 +150,14 @@ eekboard_context_service_real_create_keyboard (EekboardContextService *self, rules.layout = strdup(keyboard_type); struct xkb_keymap *keymap = xkb_keymap_new_from_names(context, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS); + xkb_context_unref(context); if (!keymap) { g_error("Bad keymap"); } keyboard->keymap = keymap; char *keymap_str = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_FORMAT_TEXT_V1); keyboard->keymap_len = strlen(keymap_str) + 1; - char *path = strdup("/eek_keymap-XXXXXX"); + g_autofree char *path = strdup("/eek_keymap-XXXXXX"); char *r = &path[strlen(path) - 6]; getrandom(r, 6, GRND_NONBLOCK); for (uint i = 0; i < 6; i++) { @@ -284,6 +285,7 @@ settings_get_layout(GSettings *settings, char **type, char **layout) } } g_variant_iter_free(iter); + g_variant_unref(inputs); } static void