ошибка: доступ по указателю на неполный тип, Strace, 24-Дек-12, 12:51 [смотреть все]Здравствуйте. Пытаюсь собрать 2nd-init из git https://github.com/a853/a853_2nd_init Наложил следующие изменения:
--- 2nd-init.orig.c 2012-12-24 10:01:18.919125141 +0400 +++ 2nd-init.c 2012-12-24 10:04:52.284183159 +0400 @@ -22,7 +22,7 @@ #include <sys/wait.h> #include <stdlib.h> #include <unistd.h> -#include <linux/user.h> +#include <sys/user.h> #include <stdio.h> #include <string.h> @@ -153,7 +153,7 @@ /* Main */ int main(int argc, char** argv) { - struct pt_regs regs; + struct pt_regs *regs; char buff[512]; char init_env[512]; @@ -307,10 +307,10 @@ ptrace(PTRACE_GETREGS, 1, NULL, ®s); - regs.ARM_r0 = injected_data_address + 0x0100; /* char* filename */ - regs.ARM_r1 = injected_data_address + 0x0000; /* char** argp */ - regs.ARM_r2 = injected_data_address + 0x0008; /* char** envp */ - regs.ARM_pc = execve_address; + regs->ARM_r0 = injected_data_address + 0x0100; /* char* filename */ + regs->ARM_r1 = injected_data_address + 0x0000; /* char** argp */ + regs->ARM_r2 = injected_data_address + 0x0008; /* char** envp */ + regs->ARM_pc = execve_address; printf("Setting /init PC to: 0xlX.\n", execve_address); Но при этом всё ловлю ошибки:
gcc 2nd-init.c -o 2nd-init 2nd-init.c: В функции «get_free_address»: 2nd-init.c:111:6: предупреждение: подавление присваивания и модификатор размера использованы вместе в формате gnu_scanf [-Wformat] // Ворнинг - фиг бы с ним, но можно тоже пофиксить если не трудно 2nd-init.c: В функции «main»: 2nd-init.c:310:6: ошибка: доступ по указателю на неполный тип 2nd-init.c:311:6: ошибка: доступ по указателю на неполный тип 2nd-init.c:312:6: ошибка: доступ по указателю на неполный тип 2nd-init.c:313:6: ошибка: доступ по указателю на неполный тип
Заранее спасибо за любые идеи как можно поправить эти ошибки.
|
- ошибка: доступ по указателю на неполный тип, pavlinux, 07:36 , 25-Дек-12 (1)
- ошибка: доступ по указателю на неполный тип, Strace, 20:45 , 25-Дек-12 (2)
>> Заранее спасибо за любые идеи как можно поправить эти ошибки. > http://www.realcoding.net/article/view/1095 Огромное спасибо за наставление к изучению этой книги! На деле всё оказалось куда как проще:
--- a/2nd-init/2nd-init.c +++ b/2nd-init/2nd-init.c @@ -17,12 +17,12 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */-#include <sys/ptrace.h> +#include <linux/ptrace.h> #include <sys/types.h> #include <sys/wait.h> #include <stdlib.h> #include <unistd.h> -#include <linux/user.h> +#include <sys/user.h> #include <stdio.h> #include <string.h> Оно просто не тот инклюд для ptrace брало =_="
- ошибка: доступ по указателю на неполный тип, pavlinux, 05:59 , 26-Дек-12 (3)
>>> Заранее спасибо за любые идеи как можно поправить эти ошибки. >> http://www.realcoding.net/article/view/1095 > Огромное спасибо за наставление к изучению этой книги! > На деле всё оказалось куда как проще: > Оно просто не тот инклюд для ptrace брало =_=" А в первом сообщении о <sys/ptrace.h> не сказано =)
- ошибка: доступ по указателю на неполный тип, Strace, 07:41 , 26-Дек-12 (4)
>>>> Заранее спасибо за любые идеи как можно поправить эти ошибки. >>> http://www.realcoding.net/article/view/1095 >> Огромное спасибо за наставление к изучению этой книги! >> На деле всё оказалось куда как проще: >> Оно просто не тот инклюд для ptrace брало =_=" > А в первом сообщении о <sys/ptrace.h> не сказано =) Так вот то то и оно, что я только потом догадался проверить этот инклюд, а то оно совсем не на него ругалось, вот я и подумал что изменилось апи с версии ядра 2.6 к третьей. А их таких в системе аж 3 штуки, в разных местах было.
|