镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Regression in zipfile, read1(-1) after seek() returns empty byte string #102956

Description

@hrnciar

Bug report

When debugging a test failure in https://pypi.org/project/fs/ I found a regression in zipfile, read1(-1) after seek() returns empty byte string instead of substring. I've bisected it into this commit 330f1d5.

Reproducer:

import zipfile

# First, create the zip:
#   echo 'Hello, World' > hello.txt
#   zip hello.zip hello.txt

with zipfile.ZipFile('hello.zip') as myzip:
    with myzip.open('hello.txt') as myfile:
        print(myfile.read(5))
        print(myfile.seek(2, 1))
        print(myfile.read1(-1))

Expected output (3.11.2):

❯ python3.11 reproduce.py
b'Hello'
7
b'World\n'

Actual output (3.12.0a6):

❯ python3.12 reproduce.py
b'Hello'
7
b''

Your environment

  • CPython versions tested on: main
  • Operating system and architecture: Fedora 37, x86_64

Linked PRs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

3.12only security fixesstdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions