[issue36975] csv: undocumented UnicodeDecodeError on malformed file

2019-05-20 Thread alter-bug-tracer


New submission from alter-bug-tracer :

UnicodeDecodeError is thrown instead of csv.Error when parsing malformed inputs.
Examples:
1. file0
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 0: invalid 
continuation byte
Traceback (most recent call last):
  File "csv_parser.py", line 6, in 
for row in reader:
  File "/usr/local/lib/python3.8/csv.py", line 111, in __next__
row = next(self.reader)
  File "/usr/local/lib/python3.8/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
2. file1
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 51: 
invalid start byte
Traceback (most recent call last):
  File "csv_parser.py", line 6, in 
for row in reader:
  File "/usr/local/lib/python3.8/csv.py", line 110, in __next__
self.fieldnames
  File "/usr/local/lib/python3.8/csv.py", line 97, in fieldnames
self._fieldnames = next(self.reader)
  File "/usr/local/lib/python3.8/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)

(file0, file1 and csv_parser.py attached)

--
files: csv.zip
messages: 342939
nosy: alter-bug-tracer
priority: normal
severity: normal
status: open
title: csv: undocumented UnicodeDecodeError on malformed file
type: behavior
versions: Python 3.8
Added file: https://bugs.python.org/file48339/csv.zip

___
Python tracker 
<https://bugs.python.org/issue36975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36976] email: AttributeError

2019-05-20 Thread alter-bug-tracer


New submission from alter-bug-tracer :

The 'lower' method is called on a Header object when trying to parse the 
attached file.

Code:
import email
import sys
with open(sys.argv[1], "rb") as f:
  msg = email.message_from_binary_file(f)
  print (len(msg))


Traceback:
msg = email.message_from_binary_file(f)
  File "/usr/lib/python3.5/email/__init__.py", line 62, in 
message_from_binary_file
return BytesParser(*args, **kws).parse(fp)
  File "/usr/lib/python3.5/email/parser.py", line 110, in parse
return self.parser.parse(fp, headersonly)
  File "/usr/lib/python3.5/email/parser.py", line 57, in parse
feedparser.feed(data)
  File "/usr/lib/python3.5/email/feedparser.py", line 178, in feed
self._call_parse()
  File "/usr/lib/python3.5/email/feedparser.py", line 182, in _call_parse
self._parse()
  File "/usr/lib/python3.5/email/feedparser.py", line 322, in _parsegen
if (self._cur.get('content-transfer-encoding', '8bit').lower()
AttributeError: 'Header' object has no attribute 'lower'

--
files: file0.zip
messages: 342940
nosy: alter-bug-tracer
priority: normal
severity: normal
status: open
title: email: AttributeError
type: behavior
versions: Python 3.8
Added file: https://bugs.python.org/file48340/file0.zip

___
Python tracker 
<https://bugs.python.org/issue36976>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36976] email: AttributeError

2019-05-20 Thread alter-bug-tracer


alter-bug-tracer  added the comment:

It is actually the exact same bug. At that time we were not sure if it security 
related or not, so we disclosed it privately and discussed it with Mark. We 
were not aware that he has submitted it for us.

--

___
Python tracker 
<https://bugs.python.org/issue36976>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36986] tarfile: unexpected IsADirectoryError on extraction

2019-05-21 Thread alter-bug-tracer


New submission from alter-bug-tracer :

The following code creates a new directory 'output' and extracts the tar 
archive given as argv in it. When a malformed archive (attached) is given as 
argv, a IsADirectoryError is thrown, as opposed to extracting the file 
contained in the archive to the 'output' directory.

Code:
import tarfile
import sys
import os

def extract(archive_path, destination_path):
  if not tarfile.is_tarfile(archive_path):
print ('Not a tar file')
return
  tar = tarfile.open(archive_path, 'r')
  for info in tar.getmembers():
tar.extractall(destination_path, members=[tar.getmember(info.name)])

destination_path = 'output'
os.mkdir(destination_path)
extract(sys.argv[1], destination_path)

Result:
Traceback (most recent call last):
  File "code.py", line 15, in 
extract(sys.argv[1], destination_path)
  File "code.py", line 11, in extract
tar.extractall(destination_path, members=[tar.getmember(info.name)])
  File "/usr/lib/python3.6/tarfile.py", line 2010, in extractall
numeric_owner=numeric_owner)
  File "/usr/lib/python3.6/tarfile.py", line 2052, in extract
numeric_owner=numeric_owner)
  File "/usr/lib/python3.6/tarfile.py", line 2122, in _extract_member
self.makefile(tarinfo, targetpath)
  File "/usr/lib/python3.6/tarfile.py", line 2163, in makefile
with bltn_open(targetpath, "wb") as target:
IsADirectoryError: [Errno 21] Is a directory: 'output'

--
files: input0.tar
messages: 342983
nosy: alter-bug-tracer
priority: normal
severity: normal
status: open
title: tarfile: unexpected IsADirectoryError on extraction
type: behavior
versions: Python 3.6, Python 3.7, Python 3.8
Added file: https://bugs.python.org/file48341/input0.tar

___
Python tracker 
<https://bugs.python.org/issue36986>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36988] zipfile: string IndexError on extract

2019-05-21 Thread alter-bug-tracer


New submission from alter-bug-tracer :

The following code throws an IndexError when attempting to extract a malformed 
archive (attached):

import zipfile
import sys

zf = zipfile.ZipFile(sys.argv[1])
for info in zf.infolist():
  zf.extract(info.filename)

Result:
Traceback (most recent call last):
  File "code.py", line 6, in 
zf.extract(info.filename)
  File "/usr/lib/python3.6/zipfile.py", line 1507, in extract
return self._extract_member(member, path, pwd)
  File "/usr/lib/python3.6/zipfile.py", line 1572, in _extract_member
if member.is_dir():
  File "/usr/lib/python3.6/zipfile.py", line 531, in is_dir
return self.filename[-1] == '/'
IndexError: string index out of range

------
files: file0.zip
messages: 343006
nosy: alter-bug-tracer
priority: normal
severity: normal
status: open
title: zipfile: string IndexError on extract
type: behavior
versions: Python 3.6, Python 3.7, Python 3.8
Added file: https://bugs.python.org/file48345/file0.zip

___
Python tracker 
<https://bugs.python.org/issue36988>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36975] csv: undocumented UnicodeDecodeError on malformed file

2019-05-21 Thread alter-bug-tracer


alter-bug-tracer  added the comment:

Shouldn't all of them be documented? Either that, or converted to csv.Error? 
Take, for example, the C++ std.

--

___
Python tracker 
<https://bugs.python.org/issue36975>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36991] zipfile: AttributeError on extract

2019-05-21 Thread alter-bug-tracer


New submission from alter-bug-tracer :

The following code throws an AttributeError when attempting to extract a 
malformed archive (attached):

import zipfile
import sys

zf = zipfile.ZipFile(sys.argv[1])
for info in zf.infolist():
  zf.extract(info.filename)

Result:
Traceback (most recent call last):
  File "code.py", line 6, in 
zf.extract(info.filename)
  File "/usr/local/lib/python3.8/zipfile.py", line 1607, in extract
return self._extract_member(member, path, pwd)
  File "/usr/local/lib/python3.8/zipfile.py", line 1677, in _extract_member
with self.open(member, pwd=pwd) as source, \
  File "/usr/local/lib/python3.8/zipfile.py", line 1548, in open
return ZipExtFile(zef_file, mode, zinfo, zd, True)
  File "/usr/local/lib/python3.8/zipfile.py", line 801, in __init__
self._decompressor = _get_decompressor(self._compress_type)
  File "/usr/local/lib/python3.8/zipfile.py", line 708, in _get_decompressor
return bz2.BZ2Decompressor()
AttributeError: 'NoneType' object has no attribute 'BZ2Decompressor'

--
files: attr0.zip
messages: 343035
nosy: alter-bug-tracer
priority: normal
severity: normal
status: open
title: zipfile: AttributeError on extract
type: behavior
versions: Python 3.8
Added file: https://bugs.python.org/file48346/attr0.zip

___
Python tracker 
<https://bugs.python.org/issue36991>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36992] zipfile: AttributeError on extract (LZMA)

2019-05-21 Thread alter-bug-tracer


New submission from alter-bug-tracer :

The following code throws an AttributeError when attempting to extract a 
malformed archive (attached):

import zipfile
import sys

zf = zipfile.ZipFile(sys.argv[1])
for info in zf.infolist():
  zf.extract(info.filename)

Result:
Traceback (most recent call last):
  File "code.py", line 6, in 
zf.extract(info.filename)
  File "/usr/local/lib/python3.8/zipfile.py", line 1607, in extract
return self._extract_member(member, path, pwd)
  File "/usr/local/lib/python3.8/zipfile.py", line 1679, in _extract_member
shutil.copyfileobj(source, target)
  File "/usr/local/lib/python3.8/shutil.py", line 198, in copyfileobj
buf = fsrc_read(length)
  File "/usr/local/lib/python3.8/zipfile.py", line 903, in read
data = self._read1(n)
  File "/usr/local/lib/python3.8/zipfile.py", line 986, in _read1
data = self._decompressor.decompress(data)
  File "/usr/local/lib/python3.8/zipfile.py", line 635, in decompress
self._decomp = lzma.LZMADecompressor(lzma.FORMAT_RAW, filters=[
AttributeError: 'NoneType' object has no attribute 'LZMADecompressor'

--
files: attr1.zip
messages: 343036
nosy: alter-bug-tracer
priority: normal
severity: normal
status: open
title: zipfile: AttributeError on extract (LZMA)
type: behavior
versions: Python 3.8
Added file: https://bugs.python.org/file48347/attr1.zip

___
Python tracker 
<https://bugs.python.org/issue36992>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36993] zipfile: tuple IndexError on extract

2019-05-21 Thread alter-bug-tracer


New submission from alter-bug-tracer :

The following code throws an IndexError when attempting to extract a malformed 
archive (attached):

import zipfile
import sys

zf = zipfile.ZipFile(sys.argv[1])
for info in zf.infolist():
  zf.extract(info.filename)

Result:
Traceback (most recent call last):
  File "code.py", line 4, in 
zf = zipfile.ZipFile(sys.argv[1])
  File "/usr/local/lib/python3.8/zipfile.py", line 1230, in __init__
self._RealGetContents()
  File "/usr/local/lib/python3.8/zipfile.py", line 1353, in _RealGetContents
x._decodeExtra()
  File "/usr/local/lib/python3.8/zipfile.py", line 480, in _decodeExtra
self.file_size = counts[idx]
IndexError: tuple index out of range

--
files: index_tuple.zip
messages: 343038
nosy: alter-bug-tracer
priority: normal
severity: normal
status: open
title: zipfile: tuple IndexError on extract
versions: Python 3.6, Python 3.7, Python 3.8
Added file: https://bugs.python.org/file48348/index_tuple.zip

___
Python tracker 
<https://bugs.python.org/issue36993>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36988] zipfile: string IndexError on extract

2019-05-21 Thread alter-bug-tracer


alter-bug-tracer  added the comment:

Hi,

The zip is corrupted on purpose.
I agree, every input should be checked before doing stuff with it.

--

___
Python tracker 
<https://bugs.python.org/issue36988>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36993] zipfile: tuple IndexError on extract

2019-06-10 Thread alter-bug-tracer


alter-bug-tracer  added the comment:

@berker.peksag, first of all sorry for the late reply. 
We are not sure that we know how to do that. Our tests are generated 
automatically. What we can do is retest the lib with your temporary fixes in 
place, to see if they fix all the problems our software can detect. Would that 
help you?

--

___
Python tracker 
<https://bugs.python.org/issue36993>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com