UNDI drivers transfer data in the system through memory buffers. To perform its function, the UNDI driver often allocates many buffers for data transfer. If those buffers are not tracked properly, it is possible to lose them in the shuffle, and they are not returned to the system memory management. This can cause a memory leak. When a buffer is being used (taken off the waiting queue and made active) there is a chance of losing the pointer to that buffer in the process, which again, causes a memory leak.