Explicit check for true instead of true-ish in OpenSSL::BN.rand
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
Direzione di ricerca
Leggi l’implementazione di OpenSSL::BN.rand in ext/openssl/ossl_bn.c in prossimità della riga collegata e verifica come interpreta l’argomento odd. Il report suggerisce di usare il controllo di truthiness di Ruby; per prima cosa conferma il comportamento previsto e se la compatibilità richieda invece di documentare il comportamento esistente. Il lavoro è completato quando il comportamento o la relativa documentazione è chiarito e coperto da un test appropriato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- C
- Stelle
- 276
- Fork
- 200
- Merge medio
- 15h 35m
- PR unite (30g)
- 7
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ruby/openssl
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
ruby/openssl#1082 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
ruby/openssl#1075 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Unchecked *_set_* callsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
ruby/openssl#1038 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
ruby/openssl#988 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 45/100
ruby/openssl#975 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di ruby/openssl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
python-pillow/Pillow#10087 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
OpenPrinting/cups#1729 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
awslabs/amazon-kinesis-video-streams-webrtc-sdk-c#2406 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
DaveGamble/cJSON#1094 ·
-
status:needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
PX4/PX4-Autopilot#28923 ·
I maintainer di solito rispondono entro 1 giorno