> Hi All,
> 
> I am testing the latest ipf 4.1.13 and pfil 2.1.9. While testing, I
> find out that if I run "/sbin/ipf -Z", it will cause a kernel panic,
> and that behavior is repeactable. Is it just me or other have seen that
> too? (FYI.. I followed the instructions from colby.edu for the ipf
> Sol10 upgrade). ipf 4.1.13 works fine otherwise.

Patch below.

Darren

Index: fil.c
===================================================================
RCS file: /devel/CVS/IP-Filter/fil.c,v
retrieving revision 2.243.2.79
diff -c -r2.243.2.79 fil.c
*** fil.c       16 Apr 2006 03:58:03 -0000      2.243.2.79
--- fil.c       17 Apr 2006 07:44:31 -0000
***************
*** 6265,6271 ****
        int error;
  
        fr_getstat(&fio);
!       error = copyoutptr(&fio, data, sizeof(fio));
        if (error)
                return EFAULT;
  
--- 6265,6271 ----
        int error;
  
        fr_getstat(&fio);
!       error = fr_outobj(data, &fio, IPFOBJ_IPFSTAT);
        if (error)
                return EFAULT;
  
Index: tools/ipf.c
===================================================================
RCS file: /devel/CVS/IP-Filter/tools/ipf.c,v
retrieving revision 1.35.2.4
diff -c -r1.35.2.4 ipf.c
*** tools/ipf.c 17 Mar 2006 11:48:08 -0000      1.35.2.4
--- tools/ipf.c 17 Apr 2006 07:48:35 -0000
***************
*** 451,465 ****
  
  void zerostats()
  {
        friostat_t      fio;
!       friostat_t      *fiop = &fio;
  
        if (opendevice(ipfname, 1) != -2) {
!               if (ioctl(fd, SIOCFRZST, &fiop) == -1) {
                        perror("ioctl(SIOCFRZST)");
                        exit(-1);
                }
!               showstats(fiop);
        }
  
  }
--- 451,471 ----
  
  void zerostats()
  {
+       ipfobj_t        obj;
        friostat_t      fio;
! 
!       obj.ipfo_rev = IPFILTER_VERSION;
!       obj.ipfo_type = IPFOBJ_IPFSTAT;
!       obj.ipfo_size = sizeof(fio);
!       obj.ipfo_ptr = &fio;
!       obj.ipfo_offset = 0;
  
        if (opendevice(ipfname, 1) != -2) {
!               if (ioctl(fd, SIOCFRZST, &obj) == -1) {
                        perror("ioctl(SIOCFRZST)");
                        exit(-1);
                }
!               showstats(&fio);
        }
  
  }

Reply via email to