Hello,

I found some some bugs in processIpPkt() of pbuf.c.

After calulate tcpUdpLen,  it compares with tcp/udp header size.
If the length is smaller than header size,  the code presume it's malformed pkts and 
show error messages.
But IP fragmented packet have no tcp/udp header, so it can be smaller than header size 
anytime.

So checking if routines of 

line 2943
    if(tcpUdpLen < sizeof(struct tcphdr)) {

line 3071
    if(tcpUdpLen < sizeof(struct udphdr)) {

line 3285
    if(tcpUdpLen < sizeof(struct icmp)) {

have to be deleted.
Otherwise, set the fragmented flag before checking header size.


Cheers,
- Zaharang



---------------------------------------------------------
SeungMin Lee
Iworld Networking, Inc.

Phone: +82-2-3440-6661
e-mail: [EMAIL PROTECTED]
 
_______________________________________________
Ntop-dev mailing list
[EMAIL PROTECTED]
http://listmanager.unipi.it/mailman/listinfo/ntop-dev

Reply via email to