Author: ek.kato
Date: Mon Jan  5 21:53:52 2009
New Revision: 5698

Modified:
   trunk/uim/skk.c
   trunk/uim/uim-helper-client.c

Log:
* uim/skk.c
  - (free_skk_line) : Plug leak.
  - (uim_plugin_instance_quit) : Plug possible leak.
* uim/uim-helper-client.c (uim_helper_close_client_fd) : Plug
  leak.


Modified: trunk/uim/skk.c
==============================================================================
--- trunk/uim/skk.c     (original)
+++ trunk/uim/skk.c     Mon Jan  5 21:53:52 2009
@@ -480,6 +480,7 @@
   }
   free(sl->head);
   free(sl->cands);
+  free(sl);
 }

 static struct skk_cand_array *
@@ -3530,25 +3531,24 @@
 {
   struct skk_line *sl, *tmp;

-  if (!skk_dic)
-    return;
-
-  if (skk_dic->addr)
-    munmap(skk_dic->addr, skk_dic->size);
-
-  sl = skk_dic->head.next;
-  while (sl) {
-    tmp = sl;
-    sl = sl->next;
-    free_skk_line(tmp);
+  if (skk_dic) {
+    if (skk_dic->addr)
+      munmap(skk_dic->addr, skk_dic->size);
+
+    sl = skk_dic->head.next;
+    while (sl) {
+      tmp = sl;
+      sl = sl->next;
+      free_skk_line(tmp);
+    }
+
+    if (skk_dic->skkserv_state & SKK_SERV_CONNECTED)
+      close_skkserv();
+    free(skk_dic->skkserv_hostname);
+
+    free(skk_dic);
+    skk_dic = NULL;
   }
-
-  if (skk_dic->skkserv_state & SKK_SERV_CONNECTED)
-    close_skkserv();
-  free(skk_dic->skkserv_hostname);
-
-  free(skk_dic);
-  skk_dic = NULL;

   if (use_look && skk_look_ctx) {
     uim_look_finish(skk_look_ctx);

Modified: trunk/uim/uim-helper-client.c
==============================================================================
--- trunk/uim/uim-helper-client.c       (original)
+++ trunk/uim/uim-helper-client.c       Mon Jan  5 21:53:52 2009
@@ -153,6 +153,7 @@
   if (uim_disconnect_cb)
     uim_disconnect_cb();

+  free(uim_read_buf);
   uim_fd = -1;
 }

Reply via email to