poprawka na ptrace dla 2.4.x - chyba w końcu dobra
Jakub Bogusz
qboosh w pld.org.pl
Wto, 22 Kwi 2003, 14:27:08 CEST
Chyba w końcu udało się skompletować dobrą poprawkę - na podstawie
ostatnich wątków na temat zepsutego patcha na LKML - przede wszystkim
http://marc.theaimsgroup.com/?l=linux-kernel&m=105098797717096&w=2
Zmiany w stosunku do oryginalnego patcha Alana wyglądają tak:
--- linux-2.4.20-ptrace-hole.patch 18 Mar 2003 11:58:21 -0000 1.1.2.2
+++ linux-2.4.20-ptrace-hole.patch 22 Apr 2003 09:48:45 -0000 1.1.2.4
@@ -452,7 +452,7 @@
#define DEF_NICE (0)
-+#define is_dumpable(tsk) ((tsk)->task_dumpable && (tsk)->mm->dumpable)
++#define is_dumpable(tsk) ((tsk)->task_dumpable && (tsk)->mm && (tsk)->mm->dumpable)
+
/*
* The default (Linux) execution domain.
@@ -517,7 +517,7 @@
int ptrace_check_attach(struct task_struct *child, int kill)
{
+ mb();
-+ if (!is_dumpable(child))
++ if (!child->task_dumpable)
+ return -EPERM;
+
if (!(child->ptrace & PT_PTRACED))
@@ -536,7 +536,7 @@
/* Worry about races with exit() */
task_lock(tsk);
mm = tsk->mm;
-+ if (!is_dumpable(tsk) || (&init_mm == mm))
++ if (!tsk->task_dumpable || (&init_mm == mm))
+ mm = NULL;
if (mm)
atomic_inc(&mm->mm_users);
Zaaplikowałem takie coś na pochodną 2.4.18-6 - system działa, widać linię
poleceń (/proc/PID/cmdline) wszystkich normalnych procesów, da się
śledzić demony itd. Jak na razie nie zauważyłem problemów.
Programik o nazwie ptrace-kmod oczywiście nie działa ;)
--
Jakub Bogusz http://cyber.cs.net.pl/~qboosh/
Więcej informacji o liście dyskusyjnej pld-kernel