".tgz" files somtimes decompressed in error.

Đang mở
#437 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

@jerrm đang làm issue này rồi.

Từ ngày 22/11/2020.

  • #438 của @jerrm — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
php
Lĩnh vực
networking

Hướng nghiên cứu

Bắt đầu trong Requests.php, tại nhánh giải nén được bảo vệ bởi header content-encoding của response. Tái hiện vấn đề với mẫu .tgz Bitbucket được liên kết và kiểm tra cách xử lý giá trị "none". Hoàn tất khi các file có content-encoding "none" không bị giải nén và archive đã tải xuống vẫn phù hợp để xác minh checksum.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Requests.php will mistakenly decompress a .tgz file (or other gzipped files) downloaded from sites that pass a "content-encoding: none" header.

In the case of .tgz files, you end up with a misnamed, uncompressed tar file. Often manageable, but not if there needs to be an md5/sha1/etc checksum confirmation.

The decompress code is wrapped by if (isset($return->headers['content-encoding'])), so the decompress code fires even though the encoding is "none". Should there be a check for a proper encoding type, or at minimum, check for "none" before decompressing?

Ran into this with bitbucket. A sample file to demonstrate the issue: https://bitbucket.org/jerrm-bb/testdownload/downloads/outcnam-test.tgz

Ngôn ngữ chính
PHP
Star
3.6k
Fork
503
Merge trung bình
5 ngày 10 giờ
Pull request đã merge (30 ngày)
3

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của WordPress/Requests

Tất cả issue của WordPress/Requests

Issue tương tự

Thêm issue về PHP

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.