Recursion in process group statistical enumeration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi guys, I've got this problem and maybe you can give me an hint.
My goal is, given a thread leader process task_struct, walk deeper in
its childs and grandsons task_struct in order to count out how many
times fork has been called out. I'm trying to do this in order to detect
a fork bombing attack.

This is the code I wrote. The problem is that after insmod it,
ndiswrapper (used for mi wifi dongle) starts oops when trying to access
network. After removing my code, ndiswrapper was still oopsing. I don't
think it a ndiswrapper related issue because it happens just after I've
introduced the following routine in task_create LSM hook.

Am I missing something? :(

int __angel_count_spawned_process(struct list_head *list)
{
	struct list_head *p;

	if (list_empty(list))
		return 0;
	list_for_each(p, list)
		return 1 + __angel_count_spawned_process((struct list_head *)&((struct
task_struct *)p)->children);
}

Thanks a lot
sp0nge
- --
Paolo Perego - <sponge@xxxxxxxxxxxxx>	web: http://angel-lsm.sf.net

Il C e' un ottimo sistema per spararsi in un piede.  Con il C++ e' piu'
difficile, ma se ci riuscite vi portera' via l'intera gamba.
		-- Bjarne Stroustrup
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDlBiGJLAJvrvZp/wRAqoXAJ4l2yCyMKbic6EJytp8vzHFzQlknwCdFdcE
7kzCn4pfYARPWQMb9S4wj4w=
=tq9g
-----END PGP SIGNATURE-----

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux