Jakub Filak 51d3b9
From 71ac5da86488ace3ebb3f3fa4adc747a511634e2 Mon Sep 17 00:00:00 2001
Jakub Filak 51d3b9
From: Pavel Tisnovsky <ptisnovs@dhcp-lab-190.englab.brq.redhat.com>
Jakub Filak 51d3b9
Date: Mon, 3 Feb 2014 18:00:35 +0100
Jakub Filak 51d3b9
Subject: [PATCH 2/2] Make sure that agent_onload and agent_onunload are
Jakub Filak 51d3b9
 processed only once.
Jakub Filak 51d3b9
Jakub Filak 51d3b9
---
Jakub Filak 51d3b9
 src/abrt-checker.c | 16 ++++++++++++++++
Jakub Filak 51d3b9
 1 file changed, 16 insertions(+)
Jakub Filak 51d3b9
Jakub Filak 51d3b9
diff --git a/src/abrt-checker.c b/src/abrt-checker.c
Jakub Filak 51d3b9
index 713053c..f142d7e 100644
Jakub Filak 51d3b9
--- a/src/abrt-checker.c
Jakub Filak 51d3b9
+++ b/src/abrt-checker.c
Jakub Filak 51d3b9
@@ -2923,10 +2923,17 @@ JNIEXPORT jint JNICALL Agent_OnLoad(
Jakub Filak 51d3b9
         char *options,
Jakub Filak 51d3b9
         void *reserved __UNUSED_VAR)
Jakub Filak 51d3b9
 {
Jakub Filak 51d3b9
+    static int already_called = 0;
Jakub Filak 51d3b9
     jvmtiEnv  *jvmti_env = NULL;
Jakub Filak 51d3b9
     jvmtiError error_code = JVMTI_ERROR_NONE;
Jakub Filak 51d3b9
     jint       result;
Jakub Filak 51d3b9
 
Jakub Filak 51d3b9
+    /* we need to make sure the agent is initialized once */
Jakub Filak 51d3b9
+    if (already_called) {
Jakub Filak 51d3b9
+        return;
Jakub Filak 51d3b9
+    }
Jakub Filak 51d3b9
+
Jakub Filak 51d3b9
+    already_called = 1;
Jakub Filak 51d3b9
     pthread_mutex_init(&abrt_print_mutex, /*attr*/NULL);
Jakub Filak 51d3b9
 
Jakub Filak 51d3b9
     INFO_PRINT("Agent_OnLoad\n");
Jakub Filak 51d3b9
@@ -3001,6 +3008,15 @@ JNIEXPORT jint JNICALL Agent_OnLoad(
Jakub Filak 51d3b9
  */
Jakub Filak 51d3b9
 JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm __UNUSED_VAR)
Jakub Filak 51d3b9
 {
Jakub Filak 51d3b9
+    static int already_called = 0;
Jakub Filak 51d3b9
+
Jakub Filak 51d3b9
+    /* we need to make sure the agent is initialized once */
Jakub Filak 51d3b9
+    if (already_called) {
Jakub Filak 51d3b9
+        return;
Jakub Filak 51d3b9
+    }
Jakub Filak 51d3b9
+
Jakub Filak 51d3b9
+    already_called = 1;
Jakub Filak 51d3b9
+
Jakub Filak 51d3b9
     pthread_mutex_destroy(&abrt_print_mutex);
Jakub Filak 51d3b9
 
Jakub Filak 51d3b9
     INFO_PRINT("Agent_OnUnLoad\n");
Jakub Filak 51d3b9
-- 
Jakub Filak 51d3b9
1.8.3.1
Jakub Filak 51d3b9