From 622c2809d500d51af8016224d2cc084f5bf884a1 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Tue, 1 Sep 2026 22:41:21 +0200 Subject: [PATCH] [Sync-En] openssl, ldap, zip: warn against truthy checks on the return value Translation of php/doc-en#4827 (commit 9e5f75b): the success and error values are both truthy, so the result must be compared strictly, and the openssl_verify() and openssl_x509_verify() examples now use ===. EN-Revision updated. --- reference/ldap/functions/ldap-compare.xml | 11 ++++++++-- .../functions/openssl-pkcs7-verify.xml | 13 +++++++++--- .../openssl/functions/openssl-verify.xml | 21 ++++++++++++------- .../functions/openssl-x509-checkpurpose.xml | 13 +++++++++--- .../openssl/functions/openssl-x509-verify.xml | 17 ++++++++++----- reference/zip/ziparchive/getarchiveflag.xml | 11 ++++++++-- 6 files changed, 64 insertions(+), 22 deletions(-) diff --git a/reference/ldap/functions/ldap-compare.xml b/reference/ldap/functions/ldap-compare.xml index 4aecc7c70a..a9e72dd11f 100644 --- a/reference/ldap/functions/ldap-compare.xml +++ b/reference/ldap/functions/ldap-compare.xml @@ -1,6 +1,5 @@ - - + ldap_compare @@ -78,6 +77,14 @@ Retourne &true; si la valeur value correspond, sinon, retourne &false;. Retourne -1 si une erreur survient. + + + &true; et -1 sont tous deux + évalués à &true;, si bien qu'un simple + test de vérité tel que if (ldap_compare(...)) traite une erreur + comme une correspondance. Le résultat doit être comparé strictement à &true;. + + diff --git a/reference/openssl/functions/openssl-pkcs7-verify.xml b/reference/openssl/functions/openssl-pkcs7-verify.xml index f93923ef3e..f1ca3a4a46 100644 --- a/reference/openssl/functions/openssl-pkcs7-verify.xml +++ b/reference/openssl/functions/openssl-pkcs7-verify.xml @@ -1,7 +1,5 @@ - - - + openssl_pkcs7_verify @@ -110,6 +108,15 @@ sinon (le message a été modifié, ou bien le certificat de signature est invalide) ou -1 si une erreur survient. + + + &true; et -1 sont tous deux + évalués à &true;, si bien qu'un simple + test de vérité tel que if (openssl_pkcs7_verify(...)) traite une erreur + comme une vérification réussie. Le résultat doit être comparé strictement à + &true;. + + diff --git a/reference/openssl/functions/openssl-verify.xml b/reference/openssl/functions/openssl-verify.xml index 59831045da..53c9fc7611 100644 --- a/reference/openssl/functions/openssl-verify.xml +++ b/reference/openssl/functions/openssl-verify.xml @@ -1,7 +1,5 @@ - - - + openssl_verify @@ -93,6 +91,15 @@ MIIBCgK.... Retourne 1 si la signature est correcte, 0 si elle est incorrecte et -1 ou &false; si une erreur survient. + + + La valeur de succès et la valeur d'erreur sont toutes deux + évaluées à &true;, si bien qu'un simple + test de vérité tel que if (openssl_verify(...)) traite une erreur + comme une vérification réussie. Le résultat doit être comparé strictement à + 1. + + @@ -142,9 +149,9 @@ $pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pe // indique si la signature est correcte $ok = openssl_verify($data, $signature, $pubkeyid); -if ($ok == 1) { +if ($ok === 1) { echo "Signature valide"; -} elseif ($ok == 0) { +} elseif ($ok === 0) { echo "Signature erronée"; } else { echo "Erreur de vérification de la signature"; @@ -176,9 +183,9 @@ openssl_sign($data, $signature, $private_key_res, "sha256WithRSAEncryption"); //Vérifie la signature $ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256); -if ($ok == 1) { +if ($ok === 1) { echo "valide"; -} elseif ($ok == 0) { +} elseif ($ok === 0) { echo "invalide"; } else { echo "erreur : ".openssl_error_string(); diff --git a/reference/openssl/functions/openssl-x509-checkpurpose.xml b/reference/openssl/functions/openssl-x509-checkpurpose.xml index 5e43ea9f33..2ae70585b2 100644 --- a/reference/openssl/functions/openssl-x509-checkpurpose.xml +++ b/reference/openssl/functions/openssl-x509-checkpurpose.xml @@ -1,7 +1,5 @@ - - - + openssl_x509_checkpurpose @@ -138,6 +136,15 @@ Retourne &true; si le certificat peut être utilisé pour un but particulier, &false; s'il ne le peut pas, ou -1 si une erreur survient. + + + &true; et -1 sont tous deux + évalués à &true;, si bien qu'un simple + test de vérité tel que if (openssl_x509_checkpurpose(...)) traite une erreur + comme une vérification réussie. Le résultat doit être comparé strictement à + &true;. + + diff --git a/reference/openssl/functions/openssl-x509-verify.xml b/reference/openssl/functions/openssl-x509-verify.xml index fb2ba056e6..06400b95b3 100644 --- a/reference/openssl/functions/openssl-x509-verify.xml +++ b/reference/openssl/functions/openssl-x509-verify.xml @@ -1,7 +1,5 @@ - - - + openssl_x509_verify @@ -50,6 +48,15 @@ MIIBCgK.... Retourne 1 si la signature est correcte, 0 si elle est incorrecte, et -1 si une erreur survient. + + + La valeur de succès et la valeur d'erreur sont toutes deux + évaluées à &true;, si bien qu'un simple + test de vérité tel que if (openssl_x509_verify(...)) traite une erreur + comme une vérification réussie. Le résultat doit être comparé strictement à + 1. + + @@ -114,8 +121,8 @@ foreach($cont["options"]["ssl"]["peer_certificate_chain"] as $chaincert) { $chainparsed = openssl_x509_parse($chaincert); $chain_public_key = openssl_get_publickey($chaincert); - $r = openssl_x509_verify($x509, $chain_public_key); - if ($r==1) + $r = openssl_x509_verify($x509, $chain_public_key); + if ($r === 1) { echo $certparsed['subject']['CN']; echo " a été signé numériquement par "; diff --git a/reference/zip/ziparchive/getarchiveflag.xml b/reference/zip/ziparchive/getarchiveflag.xml index 2f422d03b0..9cc3475c2a 100644 --- a/reference/zip/ziparchive/getarchiveflag.xml +++ b/reference/zip/ziparchive/getarchiveflag.xml @@ -1,6 +1,5 @@ - - + ZipArchive::getArchiveFlag @@ -70,6 +69,14 @@ Retourne 1 si le drapeau est défini pour l'archive, 0 si non, et -1 si une erreur s'est produite. + + + 1 et -1 sont tous deux + évalués à &true;, si bien qu'un simple + test de vérité traite une erreur comme un drapeau défini. Le résultat doit être + comparé strictement à 1. + +