New submission from mxmlnkn <maxinator...@googlemail.com>:

Normally, when opening an existing non-TAR file, e.g., a file with random data, 
an exception is raised:

tarfile.open( "foo.txt" )

    ---------------------------------------------------------------------------
    ReadError                                 Traceback (most recent call last)
    <ipython-input-53-aa60172c3e3b> in <module>()
    ----> 1 f = tarfile.open( "notes.txt", ignore_zeros = False )

    /usr/lib/python3.7/tarfile.py in open(cls, name, mode, fileobj, bufsize, 
**kwargs)
       1576                         fileobj.seek(saved_pos)
       1577                     continue
    -> 1578             raise ReadError("file could not be opened successfully")
       1579 
       1580         elif ":" in mode:

    ReadError: file could not be opened successfully

However, when specifying ignore_zeros = True, this check against invalid data 
seems to be turned off. Note that it is >invalid< data not >zero< data and 
therefore should still raise an exception!

tarfile.open( "foo.txt", ignore_zeros = True )

Iterating over that opened tarfile also works without exception however nothing 
will be iterated over, i.e., it behaves like an empty TAR instead of like an 
invalid TAR.

----------
components: Library (Lib)
messages: 369816
nosy: mxmlnkn
priority: normal
severity: normal
status: open
title: tarfile: ignore_zeros = True won't raise exception even on invalid 
(non-zero) TARs
type: behavior
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40757>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to