Skip to content

Commit 74ed589

Browse files
author
fmarasco
committed
add jni for san
1 parent d9a99fd commit 74ed589

3 files changed

Lines changed: 93 additions & 1 deletion

File tree

lib/android_build/maesdk/src/main/java/com/microsoft/applications/events/LogManager.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,18 @@ public static boolean unregisterSignals() {
960960
return Signals.isInitialized() && nativeUnregisterSignalsOnDefaultLogManager();
961961
}
962962

963+
private static native boolean nativeRegisterSanitizerOnDefaultLogManager();
964+
965+
public static boolean registerSanitizer() {
966+
return Sanitizer.isInitialized() && nativeRegisterSanitizerOnDefaultLogManager();
967+
}
968+
969+
private static native boolean nativeUnregisterSanitizerOnDefaultLogManager();
970+
971+
public static boolean unregisterSanitizer() {
972+
return Sanitizer.isInitialized() && nativeUnregisterSanitizerOnDefaultLogManager();
973+
}
974+
963975
public static native void pauseActivity();
964976
public static native void resumeActivity();
965977
public static native void waitPause();

lib/android_build/maesdk/src/main/java/com/microsoft/applications/events/LogManagerProvider.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,19 @@ public boolean unregisterSignals() {
313313
return Signals.isInitialized() && nativeUnregisterSignals(nativeLogManager);
314314
}
315315

316+
private native boolean nativeRegisterSanitizer(long nativeLogManager);
317+
@Override
318+
public boolean registerSanitizer() {
319+
return Sanitizer.isInitialized() && nativeRegisterSanitizer(nativeLogManager);
320+
}
321+
322+
private native boolean nativeUnregisterSanitizer(long nativeLogManager);
323+
@Override
324+
public boolean unregisterSanitizer() {
325+
return Sanitizer.isInitialized() && nativeUnregisterSanitizer(nativeLogManager);
326+
}
327+
328+
316329
protected native void nativePauseActivity(long nativeLogManager);
317330
protected native void nativeResumeActivity(long nativeLogManager);
318331
protected native void nativeWaitPause(long nativeLogManager);

lib/jni/LogManager_jni.cpp

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
#include "modules/signals/Signals.hpp"
1919
#define HAS_SS true
2020
#endif
21+
#if __has_include("modules/sanitizer/sanitizer.hpp")
22+
#include "SanitizerHelper.hpp"
23+
#include "modules/sanitizer/sanitizer.hpp"
24+
#define HAS_SAN true
25+
#endif
2126
#endif
2227

2328
#include <utils/Utils.hpp>
@@ -339,13 +344,40 @@ extern "C"
339344
JNIEXPORT jboolean JNICALL
340345
Java_com_microsoft_applications_events_LogManager_nativeUnregisterSignalsOnDefaultLogManager(
341346
JNIEnv *env, jclass clazz) {
342-
#if HAS_SS
347+
#if HAS_SAN
343348
auto logManager = WrapperLogManager::GetInstance();
344349
auto ss = SignalsHelper::GetSignalsInspector();
345350
if (ss != nullptr) {
346351
logManager->RemoveDataInspector(ss->GetName());
347352
return true;
348353
}
354+
#endif
355+
return false;
356+
}
357+
358+
JNIEXPORT jboolean JNICALL
359+
Java_com_microsoft_applications_events_LogManager_nativeRegisterSanitizerOnDefaultLogManager(JNIEnv *env, jclass clazz) {
360+
#if HAS_SAN
361+
auto logManager = WrapperLogManager::GetInstance();
362+
auto ss = SanitizerHelper::GetSanitizerInspector();
363+
if (ss != nullptr) {
364+
logManager->SetDataInspector(ss);
365+
return true;
366+
}
367+
#endif
368+
return false;
369+
}
370+
371+
JNIEXPORT jboolean JNICALL
372+
Java_com_microsoft_applications_events_LogManager_nativeUnregisterSanitizerOnDefaultLogManager(
373+
JNIEnv *env, jclass clazz) {
374+
#if HAS_SAN
375+
auto logManager = WrapperLogManager::GetInstance();
376+
auto ss = SanitizerHelper::GetSanitizerInspector();
377+
if (ss != nullptr) {
378+
logManager->RemoveDataInspector(ss->GetName());
379+
return true;
380+
}
349381
#endif
350382
return false;
351383
}
@@ -1640,6 +1672,24 @@ Java_com_microsoft_applications_events_LogManagerProvider_00024LogManagerImpl_na
16401672
return false;
16411673
}
16421674

1675+
extern "C"
1676+
JNIEXPORT jboolean JNICALL
1677+
Java_com_microsoft_applications_events_LogManagerProvider_00024LogManagerImpl_nativeRegisterSanitizer(
1678+
JNIEnv *env,
1679+
jobject thiz,
1680+
jlong native_log_manager) {
1681+
#if HAS_SAN
1682+
auto logManager = getLogManager(native_log_manager);
1683+
auto sa = SanitizerHelper::GetSanitizer();
1684+
if(sa != nullptr) {
1685+
logManager->SetDataInspector(sa);
1686+
return true;
1687+
}
1688+
#endif
1689+
return false;
1690+
}
1691+
1692+
16431693
extern "C"
16441694
JNIEXPORT void JNICALL
16451695
Java_com_microsoft_applications_events_LogManager_pauseActivity(JNIEnv *env, jclass clazz) {
@@ -1734,6 +1784,23 @@ Java_com_microsoft_applications_events_LogManagerProvider_00024LogManagerImpl_na
17341784
return false;
17351785
}
17361786

1787+
extern "C"
1788+
JNIEXPORT jboolean JNICALL
1789+
Java_com_microsoft_applications_events_LogManagerProvider_00024LogManagerImpl_nativeUnregisterSanitizer(
1790+
JNIEnv *env,
1791+
jobject thiz,
1792+
jlong native_log_manager) {
1793+
#if HAS_SAN
1794+
auto logManager = getLogManager(native_log_manager);
1795+
auto sa = SanitizerHelper::GetSanitizer();
1796+
if(sa != nullptr) {
1797+
logManager->RemoveDataInspector(sa->GetName());
1798+
return true;
1799+
}
1800+
#endif
1801+
return false;
1802+
}
1803+
17371804
extern "C"
17381805
JNIEXPORT jboolean JNICALL
17391806
Java_com_microsoft_applications_events_LogManagerProvider_00024LogManagerImpl_nativeStartActivity(

0 commit comments

Comments
 (0)