Explicit check for true instead of true-ish in OpenSSL::BN.rand
Mantenedores costumam responder em até 1 dia
Um pull request relacionado já foi integrado.
- #1121 de @CaptainAni187 — integrado
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 72/100
Direção de pesquisa
Leia a implementação de OpenSSL::BN.rand em ext/openssl/ossl_bn.c nas proximidades da linha vinculada e verifique como ela interpreta o argumento odd. O relatório sugere usar a verificação de truthiness do Ruby; primeiro confirme o comportamento pretendido e se a compatibilidade exige documentar o comportamento existente em vez disso. O trabalho estará concluído quando o comportamento ou sua documentação estiver esclarecido e coberto por um teste apropriado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
This method has the following call sequence:
BN.rand(bits [, fill [, odd]]) -> aBN
If we look at the code at https://github.com/ruby/openssl/blob/ed948eae356b4226a10e59d772fdbbb845aecae2/ext/openssl/ossl_bn.c#L821
we see an explicit check for == Qtrue. This means passing any other value that is true-ish in Ruby is interpreted as false:
$ ruby -ropenssl -e 'p OpenSSL::BN.rand(8, 0, 1).to_i'
140
$ ruby -ropenssl -e 'p OpenSSL::BN.rand(8, 0, 1).to_i'
158
Here the first line generated an even number, even though we pass in a true-ish value.
bottom = RTEST(odd) ? 1 : 0;
I think this should be the preferred way.
If this is intentional (or should be kept to preserve behaviour), it should probably be reflected in the docs.
- Linguagem predominante
- C
- Estrelas
- 276
- Forks
- 204
- Merge médio
- 1d 3h
- PRs com merge (30d)
- 8
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o 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.
Mais de ruby/openssl
-
Add OpenSSL::SSL::SSLContext#client_hello_cb= (binding for SSL_CTX_set_client_hello_cb())Talvez já em andamento @kou assumiu há 13 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 53/100
ruby/openssl#1125 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
ruby/openssl#1118 · 5 comentários ·
Mantenedores costumam responder em até 1 dia
-
Expose XOFs like SHAKE128 and SHAKE256Talvez já em andamento @rhenium assumiu há 110 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
ruby/openssl#1082 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
ruby/openssl#1075 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
Unchecked *_set_* callsTalvez já em andamento @ndossche assumiu há 180 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
ruby/openssl#1038 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de ruby/openssl
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
yunusemreyl/omen-space#337 ·
Mantenedores costumam responder em até 1 dia
-
dependency component: oneMKL module: dpclang
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
intel/torch-xpu-ops#5880 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
area/ci-build bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
DarkFlippers/qUnleashed#423 ·
Mantenedores costumam responder em até 1 dia