Browse Source

Prevent folder trimming from removing embedded passwords in filenames.

Reduce the number of calls to sanitize_foldername() and rely on NzbObject to do its work.
Also allow "oversized" incomplete folders to be sent back to the queue, by not sanitizing/trimming again.
pull/183/head
shypike 11 years ago
parent
commit
433711bdc6
  1. 2
      sabnzbd/dirscanner.py
  2. 2
      sabnzbd/interface.py
  3. 2
      sabnzbd/nzbstuff.py
  4. 2
      sabnzbd/rss.py
  5. 4
      sabnzbd/urlgrabber.py

2
sabnzbd/dirscanner.py

@ -110,7 +110,6 @@ def ProcessArchiveFile(filename, path, pp=None, script=None, cat=None, catdir=No
return -1, [] return -1, []
name = re.sub(r'\[.*nzbmatrix.com\]', '', name) name = re.sub(r'\[.*nzbmatrix.com\]', '', name)
name = os.path.basename(name) name = os.path.basename(name)
name = misc.sanitize_foldername(name)
if data: if data:
try: try:
nzo = nzbstuff.NzbObject(name, 0, pp, script, data, cat=cat, url=url, nzo = nzbstuff.NzbObject(name, 0, pp, script, data, cat=cat, url=url,
@ -173,7 +172,6 @@ def ProcessSingleFile(filename, path, pp=None, script=None, cat=None, catdir=Non
if not nzbname: if not nzbname:
# Prevent embedded password from being damaged by sanitize and trimming # Prevent embedded password from being damaged by sanitize and trimming
nzbname = os.path.split(name)[1] nzbname = os.path.split(name)[1]
name = misc.sanitize_foldername(name)
try: try:
nzo = nzbstuff.NzbObject(name, 0, pp, script, data, cat=cat, priority=priority, nzbname=nzbname, nzo = nzbstuff.NzbObject(name, 0, pp, script, data, cat=cat, priority=priority, nzbname=nzbname,

2
sabnzbd/interface.py

@ -2587,7 +2587,7 @@ def GetRssLog(feed):
if sabnzbd.rss.special_rss_site(url): if sabnzbd.rss.special_rss_site(url):
nzbname = "" nzbname = ""
else: else:
nzbname = xml_name(sanitize_foldername(job.get('title', ''))) nzbname = xml_name(job.get('title', ''))
return url, \ return url, \
title, \ title, \
'*' * int(job.get('status', '').endswith('*')), \ '*' * int(job.get('status', '').endswith('*')), \

2
sabnzbd/nzbstuff.py

@ -567,7 +567,7 @@ class NzbObject(TryList):
work_name, password = scan_password(work_name) work_name, password = scan_password(work_name)
if not work_name: if not work_name:
work_name = filename work_name = filename
if nzb and work_name: if nzb and work_name and not reuse:
work_name = sanitize_foldername(work_name) work_name = sanitize_foldername(work_name)
self.work_name = work_name self.work_name = work_name

2
sabnzbd/rss.py

@ -588,7 +588,7 @@ def _HandleLink(jobs, link, title, flag, orgcat, cat, pp, script, download, star
if special_rss_site(link): if special_rss_site(link):
nzbname = None nzbname = None
else: else:
nzbname = sanitize_foldername(title) nzbname = title
m = RE_NEWZBIN.search(link) m = RE_NEWZBIN.search(link)
if m and m.group(1).lower() == 'newz' and m.group(2) and m.group(3): if m and m.group(1).lower() == 'newz' and m.group(2) and m.group(3):
if download: if download:

4
sabnzbd/urlgrabber.py

@ -204,10 +204,6 @@ class URLGrabber(Thread):
if not filename: if not filename:
filename = os.path.basename(url) + '.nzb' filename = os.path.basename(url) + '.nzb'
# Sanitize and trim name, preserving the extension
filename, ext = os.path.splitext(filename)
filename = misc.sanitize_foldername(filename)
filename += '.' + misc.sanitize_foldername(ext)
pp = future_nzo.pp pp = future_nzo.pp
script = future_nzo.script script = future_nzo.script

Loading…
Cancel
Save