- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
int do_execve(const char *filename,
const char __user *const __user *__argv,
const char __user *const __user *__envp,
struct pt_regs *regs)
{
struct user_arg_ptr argv = { .ptr.native = __argv };
struct user_arg_ptr envp = { .ptr.native = __envp };
/* exec mt_debug*/
int ret;
int retry = 3;
do{
ret = do_execve_common(filename, argv, envp, regs);
printk(KERN_DEBUG"[exec] %s(%d)\n", filename, retry);
}while( -999 == ret && retry-- > 0);
return ret;
}
Ядро от MTK. Они логгируют каждый exec на уровне ядра.
Azq2 12.07.2015 15:45 # 0
bormand 12.07.2015 16:22 # +1
В общем-то не так и страшно. Подумаешь строчку в кольцевой буфер добавили. На фоне самого exec()'а, имхо, фигня.
> код, который вернула
А вот это интересней. Это однозначно не код возврата запускаемой программы. Надо смотреть, в каком случае do_execve_common() может вернуть ошибку -999. Тогда будет понятнее, почему они решили делать повторы. Судя по ебануто-безымянному -999 это какая-то чисто медиатековская ошибка, которой в нормальных ядрах нету.
P.S. Где исходники целиком можно глянуть?
Azq2 04.08.2015 18:23 # +1
mittorn 19.08.2015 11:45 # +1