File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed
Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -81,6 +81,12 @@ def __init__(self, fileobj=None):
8181 self .offset = fileobj .tell ()
8282
8383 header = fileobj .read (27 )
84+
85+ # If there is not enough data to make up the header...
86+ # we might be looking at trailing null bytes on the file.
87+ if len (header ) < 27 and all (byte == 0 for byte in header ):
88+ raise EOFError
89+
8490 if len (header ) == 0 :
8591 raise EOFError
8692
Original file line number Diff line number Diff line change @@ -261,6 +261,24 @@ def test_renumber_reread(self):
261261 finally :
262262 os .unlink (filename )
263263
264+ def test_renumber_reread_trailing_bytes (self ):
265+ try :
266+ filename = get_temp_copy (
267+ os .path .join (DATA_DIR , "multipagecomment.ogg" ))
268+
269+ # Append some trailing bytes to the file
270+ with open (filename , "rb+" ) as fileobj :
271+ fileobj .seek (0 , 2 )
272+ fileobj .write (b"\x00 " * 2 )
273+
274+ with open (filename , "rb+" ) as fileobj :
275+ OggPage .renumber (fileobj , 1002429366 , 20 )
276+
277+ with open (filename , "rb+" ) as fileobj :
278+ OggPage .renumber (fileobj , 1002429366 , 0 )
279+ finally :
280+ os .unlink (filename )
281+
264282 def test_renumber_muxed (self ):
265283 pages = [OggPage () for i in range (10 )]
266284 for seq , page in enumerate (pages [0 :1 ] + pages [2 :]):
You can’t perform that action at this time.
0 commit comments