Pickle `FLOAT` opcode inconsistency with whitespace
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 77.2k
- Forks
- 36k
- Métricas de merge de PRs
- Métricas de PR pendentes
Descrição
Bug report
Bug description:
A lot of Python code tolerates leading and trailing whitespace in string-to-number conversions. However, in the FLOAT opcode of pickle, the Python implementation can tolerate leading/trailing whitespace, while the C implementation throws an error and can't convert it. Note that the INT opcode can gracefully handle leading/trailing whitespace (in both Python and C).
Payloads:
payload: b'F 5\n.'
pickle: 5.0
_pickle.c: FAILURE could not convert string to float: ' 5
'
pickletools:
0: F FLOAT 5.0
4: . STOP
highest protocol among opcodes = 0
payload: b'F5 \n.'
pickle: 5.0
_pickle.c: FAILURE could not convert string to float
pickletools:
0: F FLOAT 5.0
4: . STOP
highest protocol among opcodes = 0
payload: b'I 5 \n.'
pickle: 5
_pickle.c: 5
pickletools:
0: I INT 5
5: . STOP
highest protocol among opcodes = 0
CPython versions tested on:
3.13
Operating systems tested on:
Linux
Linked PRs
- gh-135619
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece localizando as implementações em Python e C do opcode FLOAT do pickle e compare como elas tratam os payloads fornecidos. Execute os exemplos no Python 3.13 e, em seguida, verifique se os espaços em branco iniciais e finais são tratados de forma consistente nas duas implementações.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- backend
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 35/100