smb_open() will create 0-byte files
If you call smb_open (e.g. via fixsmb, smbutil, etc.) but mispell the base filename or path, smb_open will create some 0-byte files and fail to open the base.
Perhaps create and use smb_exists() or something similar (to check without opening/creating files) and call that before smb_open() in several places.