Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Filepaths get incorrectly decoded leading to files being extracted in the wrong directory

Aperta
#77 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Start by extracting the attached minimal archive after repackaging it as a .tar.xz on Debian 13, then trace how Extractcode decodes archive member paths and handles the +dfsg/LICENSES/Qt- segment. Compare the resulting path with the expected qt6-webengine-6.8.2+dfsg/LICENSES/Qt-GPL-exception-1.0.txt. Done means extraction preserves the directory structure and filename for this example.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

We are using Extractcode to extract large open source archives.
We have found a case where after extraction files some files from subdirectories are extracted into the extraction root and given very long and partially gibberish names.

This happened specifically upon extracting qt6-webengine 6.8.2+dfsg-4 (http://deb.debian.org/debian/pool/main/q/qt6-webengine/qt6-webengine_6.8.2+dfsg-4.debian.tar.xz).

After extraction the file qt6-webengine-6.8.2+dfsg/LICENSES/Qt-GPL-exception-1.0.txt was found in the extraction root with filename qt6-webengine-6.8.2Min _nyopeQu _ GPL-exception-1.0.txt

After some investigation we found that +dfsg/LICENSES/Qt- is being incorrectly decoded as UTF-7, leading to a full-path of qt6-webengine-6.8.2痻\u20fc눂ე葋\uf42dGPL-exception-1.0.txt which is the transliterated to qt6-webengine-6.8.2Min _nyopeQu _ GPL-exception-1.0.txt This means that the directory structure of the file is entirely lost and the file gets extracted to the extraction root instead of the correct directory.
The same happens for a selection of other files in the archive, but not reliably for every file. We were not able to determine what specifically triggers the issue, our assumption is that it has to do with Kanji encoding in some form (e.g. if the final part of a path can theoretically be decoded as a Kanji it incorrectly assumes it is UTF-7 encoded).

We have attached a minimal example of this (note: we had to package it as a .zip due to file support limitations on github, for testing it should be extracted and then reachived as a .tar.xz) with only this Qt-GPL-exception-1.0.txt file contained for easier verification and testing.
qt6-webengine-6.8.2+dfsg.zip

We were able to reproduce the issue reliably on a Debian 13 system, the issue was not reproducible on a Windows 11 machine.

Lingua principale
Python
Stelle
39
Fork
23
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aboutcode-org/extractcode

Tutte le issue di aboutcode-org/extractcode

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.