memory leak of tdifw.

I have a question about tdi_fw(tdi based firewall) of
http://sourceforge.net/projects/tdifw/
It seems that there are memory leaks in tdi-fw.

I checked memory usage by using verifier.exe(windows system utility).
The amount of NonPagedPoolUsageInBytes is keep increasing.

Is there any problem in tdi_create and tdi_cleanup routine?
If i stop IIS service, the amount of NonPagedPoolUsageInBytes of tdi_fw is
not increasing.
I think that some kind of packets of IIS are keep incoming.
But, If i start IIS service, the amount of NonPagedPoolUsageInBytes of
tdi_fw is keep increasing. In the end, system used up all nonpagedpool
memory after a few days.

I applied what the owner of tdi_fw advise to me.

disp_obj.c, tdi_associate_address: call ObDereferenceObject() for addrobj
at
the end of function
tdi_create_addrobj_complete: call ot_del_fileobj for ips->FileObject on not
successful status

By the way, the amount of NonPagedPoolUsageInBytes of tdi_fw is keep
increasing.

Next, I modified source code of disp_obj.c(tdi_create dispatch routine) like
this.
I deleted ot_add_fileobj function call.
/*
* This is creation of connection object
*/
CONNECTION_CONTEXT conn_ctx = *(CONNECTION_CONTEXT *)
(ea->EaName + ea->EaNameLength + 1);
//status = ot_add_fileobj(irps->DeviceObject, irps->FileObject,
FILEOBJ_CONNOBJ, conn_ctx, 0); // here
if (status != STATUS_SUCCESS) {
return FILTER_DENY;
}

Then, the amount of NonPagedPoolUsageInBytes of tdi_fw is not increasing.
But, Outgoing packet is not controlled properly.

I think that the memory(FILEOBJ_CONNOBJ, which is allocated in the
disp_obj.c) is not freed normally.
This memory must be freed in the tdi_cleanup or in the
tdi_create_addrobj_complete or in the other routines, am i right?
In case of IIS, If i stop IIS service, tdi_cleanup routine is being executed
forcibly, i think.

Help me, please.

Thanks in advance!