obmalloc debug info can produce invalidly encoded output

Aberta
#95,574 2 comentários 0 reações 1 responsável Ver no GitHub

@vstinner já está trabalhando nisso.

Desde 2/8/2022.

Avaliação

Esta issue ainda não foi avaliada.

Descrição

interpreter-core type-bug

obmalloc's debug mode (specifically _PyMem_DebugCheckAddress() and _PyObject_DebugDumpAddress()) can produce output that is invalid in the text encoding being used by the process. This is because it prints the api_id byte to stderr with fprintf() using the %c format, and the byte can be corrupted. Because of the nature of these checks (they try to prevent memory corruption) it is actually fairly likely that the byte is corrupted, which can mean the output can't then be easily handled by tooling that expects a specific encoding (like UTF-8).

It would probably make sense to check whether the value of the api_id is a printable ASCII character before trying to print it, and resort to printing the value with %x instead.

Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Merge médio
1d 9h
PRs com merge (30d)
558

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de python/cpython

Todas as issues de python/cpython

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.