The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ошибка: доступ по указателю на неполный тип"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"ошибка: доступ по указателю на неполный тип"  +/
Сообщение от Strace (ok) on 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: ошибка: доступ по указателю на неполный тип

Заранее спасибо за любые идеи как можно поправить эти ошибки.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ошибка: доступ по указателю на неполный тип"  +/
Сообщение от pavlinux (ok) on 25-Дек-12, 07:36 
> Заранее спасибо за любые идеи как можно поправить эти ошибки.

http://www.realcoding.net/article/view/1095

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ошибка: доступ по указателю на неполный тип"  +/
Сообщение от Strace (ok) on 25-Дек-12, 20:45 
>> Заранее спасибо за любые идеи как можно поправить эти ошибки.
> 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 брало =_="
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "ошибка: доступ по указателю на неполный тип"  +/
Сообщение от pavlinux (ok) on 26-Дек-12, 05:59 
>>> Заранее спасибо за любые идеи как можно поправить эти ошибки.
>> http://www.realcoding.net/article/view/1095
> Огромное спасибо за наставление к изучению этой книги!
> На деле всё оказалось куда как проще:
> Оно просто не тот инклюд для ptrace брало =_="

А в первом сообщении о <sys/ptrace.h> не сказано =)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "ошибка: доступ по указателю на неполный тип"  +/
Сообщение от Strace (ok) on 26-Дек-12, 07:41 
>>>> Заранее спасибо за любые идеи как можно поправить эти ошибки.
>>> http://www.realcoding.net/article/view/1095
>> Огромное спасибо за наставление к изучению этой книги!
>> На деле всё оказалось куда как проще:
>> Оно просто не тот инклюд для ptrace брало =_="
> А в первом сообщении о <sys/ptrace.h> не сказано =)

Так вот то то и оно, что я только потом догадался проверить этот инклюд, а то оно совсем не на него ругалось, вот я и подумал что изменилось апи с версии ядра 2.6 к третьей.
А их таких в системе аж 3 штуки, в разных местах было.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру