parent
f1bd2d9193
commit
f2b81d88ba
@ -0,0 +1,31 @@
|
|||||||
|
#include "org_thoughtcrime_securesms_util_FileUtils.h"
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
jint JNICALL Java_org_thoughtcrime_securesms_util_FileUtils_getFileDescriptorOwner
|
||||||
|
(JNIEnv *env, jclass clazz, jobject fileDescriptor)
|
||||||
|
{
|
||||||
|
jclass fdClass = env->GetObjectClass(fileDescriptor);
|
||||||
|
|
||||||
|
if (fdClass == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
jfieldID fdFieldId = env->GetFieldID(fdClass, "descriptor", "I");
|
||||||
|
|
||||||
|
if (fdFieldId == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int fd = env->GetIntField(fileDescriptor, fdFieldId);
|
||||||
|
|
||||||
|
struct stat stat_struct;
|
||||||
|
|
||||||
|
if (fstat(fd, &stat_struct) != 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return stat_struct.st_uid;
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||||
|
#include <jni.h>
|
||||||
|
/* Header for class org_thoughtcrime_securesms_util_FileUtils */
|
||||||
|
|
||||||
|
#ifndef _Included_org_thoughtcrime_securesms_util_FileUtils
|
||||||
|
#define _Included_org_thoughtcrime_securesms_util_FileUtils
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
/*
|
||||||
|
* Class: org_thoughtcrime_securesms_util_FileUtils
|
||||||
|
* Method: getFileDescriptorOwner
|
||||||
|
* Signature: (Ljava/io/FileDescriptor;)I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_org_thoughtcrime_securesms_util_FileUtils_getFileDescriptorOwner
|
||||||
|
(JNIEnv *, jclass, jobject);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,13 @@
|
|||||||
|
package org.thoughtcrime.securesms.util;
|
||||||
|
|
||||||
|
import java.io.FileDescriptor;
|
||||||
|
|
||||||
|
public class FileUtils {
|
||||||
|
|
||||||
|
static {
|
||||||
|
System.loadLibrary("native-utils");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static native int getFileDescriptorOwner(FileDescriptor fileDescriptor);
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue