Fix memory leak for at-spi event. 93/308693/1
authorWonsik Jung <sidein@samsung.com>
Fri, 29 Mar 2024 02:26:41 +0000 (11:26 +0900)
committerWonsik Jung <sidein@samsung.com>
Fri, 29 Mar 2024 02:29:49 +0000 (11:29 +0900)
This patch serves to address potential memory leaks and input parameter exception issues.

Change-Id: Ica681deeef809892ee00b202a1d96153dd191352

libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc

index 44fb227008f35effb5cc1abfbc5b8b6583e98fd9..d0b66ba15287d5f9ac9390430cc057020e9a2cf1 100644 (file)
@@ -283,8 +283,18 @@ void AtspiAccessibleWatcher::processCallback(char *type, char *name, char *pkg)
 
 void AtspiAccessibleWatcher::onAtspiEvents(AtspiEvent *event, void *watcher)
 {
-    if (!event->source)
+    if ((!event) || (!event->source))
     {
+        if(event)
+        {
+            g_boxed_free(ATSPI_TYPE_EVENT, event);
+        }
+        return;
+    }
+
+    if (!watcher)
+    {
+        g_boxed_free(ATSPI_TYPE_EVENT, event);
         return;
     }
 
@@ -316,11 +326,13 @@ void AtspiAccessibleWatcher::onAtspiEvents(AtspiEvent *event, void *watcher)
         }
 
         if (name) free(name);
+        g_boxed_free(ATSPI_TYPE_EVENT, event);
         return;
     }
     else if (isIdle == IdleEventState::IDLE_LISTEN_DONE && !strncmp(event->type, "window:post-render", 18))
     {
         if (name) free(name);
+        g_boxed_free(ATSPI_TYPE_EVENT, event);
         return;
     }
 
@@ -352,6 +364,7 @@ void AtspiAccessibleWatcher::onAtspiEvents(AtspiEvent *event, void *watcher)
     }
     if (name) free(name);
     if (pkg) free(pkg);
+    g_boxed_free(ATSPI_TYPE_EVENT, event);
 }
 
 void AtspiAccessibleWatcher::onObjectDefunct(AtspiAccessible *node)