Anomalie #6384
ferméPossible erreur de logique dans getTmpDir()
100%
Description
En relisant le code de getTmpDir($def = '/tmp'), il semble y avoir une erreur de logique dans le cas ou CORE_TMPDIR est vide et ou $def est une chaîne vide aussi.
$tmp = getParam('CORE_TMPDIR', $def);
if (empty($tmp)) {
return $def;
}
1) Si CORE_TMPDIR est vide et $def non-vide, alors on retournera directement $def sans exécuter le code qui suit et qui permet de gérer le cas ou le répertoire $def serait en relatif pour le mettre en absolu par rapport à la racine du contexte : par conséquent, cela fera que le répertoire temporaire sera relatif au répertoire courant du code appelant.
2) Si CORE_TMPDIR est vide et $def est vide, alors l'appelant recevra une chaîne vide ce qui pourrait faire qu'il crée ses fichiers temporaires dans son répertoire courante : ce qui n'est généralement pas souhaitable.
Je pense qu'il faudrait corriger ce code pour gérer les 2 cas ci-dessus :
$tmp = getParam('CORE_TMPDIR', $def);
if (empty($tmp)) {
if (empty($def)) {
$tmp = './var/tmp'; // Forcer la valeur par défaut de CORE_TMPDIR d'une installation vierge par défaut
} else {
$tmp = $def; // Utiliser la valeur par défaut $def fournie
}
/*
* Dans tous les cas, ne pas retourner directment cette valeurs
* pour ne pas shunter les traitement suivants pour mettre sous
* forme absolue et créer le sous-répertoire `dcp`
*/
}
...
Mis à jour par Éric Brison il y a presque 10 ans
- Statut changé de Nouveau à Assigné
- Assigné à mis à Jérôme Augé
Mis à jour par Éric Brison il y a presque 10 ans
- Statut changé de Assigné à Intégré
Appliqué par commit internal-platfrom:commit:e4cf041c57101f5ae7943b77cc574b753c2c7bf7.