mirror of
https://github.com/samba-team/samba.git
synced 2025-03-09 08:58:35 +03:00
samba-tool gpo: improve UNC parsing
The "UNC doesn't start with \\\\ or //" message was unreachable due to a logic error, and an UNC starting with \\ would have been split on / if there were enough /s in the string. The unreachable exception was first noticed by Gerhard Lausser in a github pull request (https://github.com/samba-team/samba/pull/123), but that patch no longer applies with this more thorough rewrite. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
ebced94a87
commit
4bc481c5cb
@ -235,15 +235,16 @@ def del_gpo_link(samdb, container_dn, gpo):
|
||||
|
||||
def parse_unc(unc):
|
||||
'''Parse UNC string into a hostname, a service, and a filepath'''
|
||||
if unc.startswith('\\\\') and unc.startswith('//'):
|
||||
raise ValueError("UNC doesn't start with \\\\ or //")
|
||||
tmp = unc[2:].split('/', 2)
|
||||
if len(tmp) == 3:
|
||||
return tmp
|
||||
tmp = unc[2:].split('\\', 2)
|
||||
if len(tmp) == 3:
|
||||
return tmp
|
||||
raise ValueError("Invalid UNC string: %s" % unc)
|
||||
tmp = []
|
||||
if unc.startswith('\\\\'):
|
||||
tmp = unc[2:].split('\\', 2)
|
||||
elif unc.startswith('//'):
|
||||
tmp = unc[2:].split('/', 2)
|
||||
|
||||
if len(tmp) != 3:
|
||||
raise ValueError("Invalid UNC string: %s" % unc)
|
||||
|
||||
return tmp
|
||||
|
||||
|
||||
def find_parser(name, flags=re.IGNORECASE):
|
||||
|
Loading…
x
Reference in New Issue
Block a user