2017-03-16 290 views
1

在adb shell中運行,並由NDK編譯。套接字(AF_INET,SOCK_DGRAM,IPPROTO_ICMP)失敗,errno = 13(權限被拒絕)

我的代碼:

#include <sys/socket.h> 
#include <errno.h> 
#include <linux/netlink.h> 
#include <linux/in.h> 
#include <string.h> 
#include <stdio.h> 
int main() 
{ 
    int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP); 
    printf("sock = %d and errno = %d\n", sock, errno); 
    return 0; 
} 

輸出:

[email protected]:/data/local/tmp $ ./poc 
sock = -1 and errno = 13 

有誰知道爲什麼嗎?

+0

你有沒有把你的SELinux設置爲'enforced'或'permissive'模式?另外,運行你的程序後('dmesg')什麼是內核輸出? –

+0

vbox86p:/數據/本地的/ tmp#getenforce 殘疾人 – jptang

+0

的dmesg:<6> [8.208501] qtaguid:ctrl_counterset(S 1 10023):從PID = 466 TGID = 279 UID PRIV不足= 1000 <3> [9.362826] INIT: sys_prop:permission denied uid:1003 name:service.bootanim.exit <7> [10.959880] eth0:沒有IPv6路由器存在 <7> [20.643991] eth1:沒有IPv6路由器存在 – jptang

回答

相關問題