현재 JNI컴파일 되어 있는 파일은 binary형태로 되어 있어서 "./"같은 명령어를 사용하여 쉘커맨드에서 실행 가능하도록 되어 있습니다.

문제는 이것을 JAVA에서 exec()를 이용하여 jni를 호출하여 쉘 커맨드에서 실행시키도록 하면

이 c program의 프로세스의 user가 해당 JAVA app의 user로 세팅이 되면서 실행이 됩니다.

그리고 메모리 억세스(memcpy)하는 순간 SIGSEGV에러가 뜨게 됩니다.

 

user마다 할당된 메모리 주소값이 있는지 궁금하구요

이 어플리케이션은 root permission을 사용하지 않아야 합니다.