smb:// is a URL with no host and no path
smb:/// is a URL with no host, but a valid path
The current code special cases smb:/ which isn't a real thing.
This results in smb:// falling through checkURL() and being incorrectly
modified into smb:/// creating a URL with a host, something different.
This code makes any smb:/ get converted into smb:// at the right place.
Then the special case for having no host or path are handled properly.