winnt-directory-scan-memory-leak-20010210
authorJames Peterson <jimpeter@us.ibm.com>
Sat, 10 Feb 2001 20:46:15 +0000 (20:46 +0000)
committerDerrick Brashear <shadow@dementia.org>
Sat, 10 Feb 2001 20:46:15 +0000 (20:46 +0000)
commit83074e0491fb5a215ffdb223280a3c3428edd29e
tree640e06ed09a522e1a5cf7213c5627c6c972c7a87
parent27d66d2928ffd2f1bbe533d7437ac533394f4113
winnt-directory-scan-memory-leak-20010210

"Problem:
During a directory scan W2K does not send the FindClose the way NT does.
When smb_ReceiveTran2SearchDir() processes FindFirst or FindNext, the
termination Flags is never set either (close search if end of search).
Since these operations don't occur smb_DeleteDirSearch() is never called;
therefore the dsp (smb_dirSearch_t) is never freed.

This problem was reproducible while trying to scan a directory (e.g. dir
*.c/s) with symbolic links.

When smb_ReceiveTran2SearchDir() processes FindFirst or FindNext the last
SMB call in a session can be indicated by checking for no more files
(filesnames==0).

Running a directory scan (DOS window) and file cache size of 5 MB:
   With the memory leak patch, the program grew upto the limit of +5.3MB.
   Without the patch, the program will grew +27MB before the operation was
   finished, then became unstable."
src/WINNT/afsd/smb3.c