Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

niewłaściwe przekazywanie parametru w iptables-p2p

0 views
Skip to first unread message

Zbigniew Lisiecki

unread,
Feb 7, 2006, 12:20:38 PM2/7/06
to
Witam,
na darmo staram się posłużyć się modułem iptables-p2p według
http://sourceforge.net/projects/iptables-p2p w moim SuSE Linux. insmod
powoduje naruszenie pamięci spowodowane pointerem NULL, co wydaje
się konsekwencją nieprawidłowego przekazania adresu parametru p2p_match.
otóż w kodzie modułu przy zawołaniu ipt_register_match() ma on wartość
przypominającą wielkością inne tego typu adresy:

static int __init init(void)
{
printk(KERN_INFO "iptables-p2p %s initialized\n", IPT_P2P_VERSION);
printk(KERN_INFO "iptables-p2p p2p_match 0x%x\n", &p2p_match);
return ipt_register_match(&p2p_match);
}

natomiast wewnątrz ipt_register_match() printk pokazuje wartość 23 !
Jak to możliwe ? Zauważyłem ponadto, że kompilacja iptables-p2p
tworzy w katalogu plik ipt_p2p.mod.c z adresami funkcji:

{ 0x17f9b360, "struct_module" },
{ 0x91593197, "ipt_unregister_match" },
{ 0x71184db2, "ipt_register_match" },
{ 0x1b7d4074, "printk" },

jednak nie odpowiadają one adresom odczytanym z /proc/allsymbols
Co mnie dziwi pomimo złych adresów insmod jakoś odnajduje właściwy adres,
bo funkcja ip_register_match() jest przecież wywoływana.
Odręczna zmiana tych adresów w ipt_p2p.c nic nie zmienia.

Czy ktoś zechciałby podpowiedzieć dobry opis w sieci, który pomógłby
rozwiązać ten problem.
pozdrawiam
zbyszek lisiecki
--
http://zbyszek.evot.org

0 new messages