Title: Ipv6 with ipfilter on solaris 9 platform

Hi,

    Found a problem in the pfil driver that was causing ipv6 messages to fail upon intoducing pfil layer.
Below is the snippet of code from pfil-2.1.7

Lfile pfildrv.c line no
 In the below code  snippet ipv6 header will have only payload length so inorder to get the packet length I have added sizeof(ip6_t) which will be 40 bytes. In absence of this correction the check that was put further in the code was causing problems and was passing wrong mbuf size to ip filter leading to failure of ipv6 messages.



   675  #if SOLARIS2 >= 8
   676   else if (sap == IP6_DL_SAP) {
   677      u_short tlen;
   678
   679      hlen = sizeof(ip6_t);
   680      ip6 = (ip6_t *)ip;
   681
   682      /* XXX - might not be aligned (from ppp?) */
   683      ((char *)&tlen)[0] = ((char *)&ip6->ip6_plen)[0];
   684      ((char *)&tlen)[1] = ((char *)&ip6->ip6_plen)[1];
   685      plen = ntohs(tlen);
   686
   687        /* ipv6 packet lenght is payload length plus header length --- deepak */
   688        plen += hlen;
   689      if (plen == 0)




Hope this clarifies the problem


Regards
Deepak

Reply via email to