static -pthread ./exploit.c -o ./exploit ./exploit.c: In function ‘spray_simple_xattr’: ./exploit.c:142:9: warning: implicit declaration of function ‘mkdir’ [-Wimplicit-function-declaration] 142 | if (mkdir("/tmp/tmpfs", S_IRWXU) == -1 && errno != EEXIST) | ^~~~~ ./exploit.c: In function ‘print_hex’: ./exploit.c:243:23: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=] 243 | printf(" %16llx",*(size_t * )(buf + i*8)); | ~~~~~^ ~~~~~~~~~~~~~~~~~~~~~~~ | | | | | size_t {aka long unsigned int} | long long unsigned int | %16lx ./exploit.c: In function ‘get_root_shell’: ./exploit.c:354:3: warning: null argument where non-null required (argument 2) [-Wnonnull] 354 | execve("/tmp/dummy", NULL, NULL); | ^~~~~~
时间: 2024-02-14 16:36:13 浏览: 158
glibc的两个rpm包
根据您的问题描述,这似乎是一个编译警告信息,并不影响代码的运行。其中包括:
1. `implicit declaration of function ‘mkdir’` 表示您的代码中使用了mkdir函数,但是编译器没有找到该函数的声明,需要添加头文件`#include <sys/stat.h>`。
2. `format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘size_t’` 表示在打印输出时使用了错误的格式标识符。应该将`%llx`改为`%lx`。
3. `null argument where non-null required (argument 2)` 表示您在`execve()`函数中使用了NULL参数,但该参数不能为NULL。您需要将第二个和第三个参数设置为合适的值。
请您检查一下代码并进行相应的修改,以消除这些警告信息。
阅读全文