paramètre media:joindre_deballer_lister_zip ignoré #4114

Closed
opened 5 years ago by miros · 4 comments
miros commented 5 years ago

Bonjour,

Il me semble avoir trouvé une petite incohérence dans le code du plugin media, plus précisément dans la fonction "joindre_deballer_lister_zip" ligne 301, de media/inc/joindre_document.php.
Sauf erreur de ma part, cette fonction a pour but de déballer le contenu d'un fichier zip qui lui est passé en paramètre dans un répertoire temporaire et de retourner une liste décrivant sont contenus.

Cette fonction prends deux paramètres $path et $tmp_dir:

  • $path corresponds au chemin du fichier zip à déballer
  • $tmp_dir corresponds au dossier temporaire ou celui-ci sera déballé

Cette fonction utilise la librairie Pclzip.

L'incohérence se trouve au niveau du deuximère paramètre, $tmp_dir, celui-ci est censé indiquer dans quel répertoire le contenu du zip sera déballer or ce chemin n'est pas pris en compte par la fonction Pclzip->extraire (ligne 305), et n'est pas non plus pris en compte par la fonction callback 'callback_deballe_fichier' indiqué à la fonction extraire de Pclzip.
En effet dans le code le chemin pris en compte est déclaré dans un define "_TMP_DIR" celui-ci déclaré à la ligne 140 de la fonction "joindre_trouver_fichier_envoye" (meme fichier php, début ligne 26).
($tmp_dir est uniquement utilisé dans la définition du chemin du fichier qui est renvoyé par la fonction: ligne 317: 'tmp_name' => $tmp_dir . $f)

Donc le paramètre $tmp_dir quasi non-utilisé induit en erreur car on s'attend à se que le contenu ce trouve dans le chemin $tmp_dir de plus si on appeler directement la focntion "joindre_deballer_lister_zip" sans appeler "joindre_trouver_fichier_envoye" on ne définit pas _TMP_DIR et on a une erreur incohmpréensible.

Du coup, le pire sénario (mon cas) j'appelais "joindre_deballer_lister_zip" après un autre appel "joindre_trouver_fichier_envoye" indirect, donc la variable _TMP_DIR etait défini et le contenu de mon zip déballer à cette endroit alors que je donnais un $tmp_dir completement différent, cette destination restait vide et aucun message d'erreur de la fonction "joindre_deballer_lister_zip".

Bref, je suggère de prendre en compte pour l'extraction la variable $tmp_dir, et/ou d'ajouter test/définition de la variable _TMP_DIR en début de fonction pour prévenir tout exécution "bizarre".

Bonjour, Il me semble avoir trouvé une petite incohérence dans le code du plugin media, plus précisément dans la fonction "joindre_deballer_lister_zip" ligne 301, de media/inc/joindre_document.php. Sauf erreur de ma part, cette fonction a pour but de déballer le contenu d'un fichier zip qui lui est passé en paramètre dans un répertoire temporaire et de retourner une liste décrivant sont contenus. Cette fonction prends deux paramètres $path et $tmp_dir: - $path corresponds au chemin du fichier zip à déballer - $tmp_dir corresponds au dossier temporaire ou celui-ci sera déballé Cette fonction utilise la librairie Pclzip. L'incohérence se trouve au niveau du deuximère paramètre, $tmp_dir, celui-ci est censé indiquer dans quel répertoire le contenu du zip sera déballer or ce chemin n'est pas pris en compte par la fonction Pclzip->extraire (ligne 305), et n'est pas non plus pris en compte par la fonction callback 'callback_deballe_fichier' indiqué à la fonction extraire de Pclzip. En effet dans le code le chemin pris en compte est déclaré dans un define "_TMP_DIR" celui-ci déclaré à la ligne 140 de la fonction "joindre_trouver_fichier_envoye" (meme fichier php, début ligne 26). ($tmp_dir est uniquement utilisé dans la définition du chemin du fichier qui est renvoyé par la fonction: ligne 317: 'tmp_name' => $tmp_dir . $f) Donc le paramètre $tmp_dir quasi non-utilisé induit en erreur car on s'attend à se que le contenu ce trouve dans le chemin $tmp_dir de plus si on appeler directement la focntion "joindre_deballer_lister_zip" sans appeler "joindre_trouver_fichier_envoye" on ne définit pas _TMP_DIR et on a une erreur incohmpréensible. Du coup, le pire sénario (mon cas) j'appelais "joindre_deballer_lister_zip" après un autre appel "joindre_trouver_fichier_envoye" indirect, donc la variable _TMP_DIR etait défini et le contenu de mon zip déballer à cette endroit alors que je donnais un $tmp_dir completement différent, cette destination restait vide et aucun message d'erreur de la fonction "joindre_deballer_lister_zip". Bref, je suggère de prendre en compte pour l'extraction la variable $tmp_dir, et/ou d'ajouter test/définition de la variable _TMP_DIR en début de fonction pour prévenir tout exécution "bizarre".
b_b commented 5 years ago
Owner

Salut et merci pour le signalement, sur quelle version de SPIP observes-tu le problème ?

Salut et merci pour le signalement, sur quelle version de SPIP observes-tu le problème ?
Poster

Effectivement, j'ai oublier de précisé.
Spip 3.2.0 révision 23778

Le 19 mars 2018 à 14:35, <redmine`spip.org> a écrit :

La demande #4114 a été mise à jour par b b.

Salut et merci pour le signalement, sur quelle version de SPIP observes-tu
le problème ?

Anomalie #4114: paramètre media:joindre_deballer_lister_zip ignoré
https://core.spip.net/issues/4114#change-13736

  • Auteur: Alexis Z
  • Statut: Nouveau
  • Priorité: Normal
  • Assigné à:
  • Catégorie:
  • Version cible:
  • Resolution:
  • Navigateur:

Bonjour,

Il me semble avoir trouvé une petite incohérence dans le code du plugin
media, plus précisément dans la fonction "joindre_deballer_lister_zip"
ligne 301, de media/inc/joindre_document.php.
Sauf erreur de ma part, cette fonction a pour but de déballer le contenu
d'un fichier zip qui lui est passé en paramètre dans un répertoire
temporaire et de retourner une liste décrivant sont contenus.

Cette fonction prends deux paramètres $path et $tmp_dir:

  • $path corresponds au chemin du fichier zip à déballer
  • $tmp_dir corresponds au dossier temporaire ou celui-ci sera déballé

Cette fonction utilise la librairie Pclzip.

L'incohérence se trouve au niveau du deuximère paramètre, $tmp_dir,
celui-ci est censé indiquer dans quel répertoire le contenu du zip sera
déballer or ce chemin n'est pas pris en compte par la fonction
Pclzip->extraire (ligne 305), et n'est pas non plus pris en compte par la
fonction callback 'callback_deballe_fichier' indiqué à la fonction extraire
de Pclzip.
En effet dans le code le chemin pris en compte est déclaré dans un define
"_TMP_DIR" celui-ci déclaré à la ligne 140 de la fonction
"joindre_trouver_fichier_envoye" (meme fichier php, début ligne 26).
($tmp_dir est uniquement utilisé dans la définition du chemin du fichier
qui est renvoyé par la fonction: ligne 317: 'tmp_name' => $tmp_dir . $f)

Donc le paramètre $tmp_dir quasi non-utilisé induit en erreur car on
s'attend à se que le contenu ce trouve dans le chemin $tmp_dir de plus si
on appeler directement la focntion "joindre_deballer_lister_zip" sans
appeler "joindre_trouver_fichier_envoye" on ne définit pas _TMP_DIR et on
a une erreur incohmpréensible.

Du coup, le pire sénario (mon cas) j'appelais
"joindre_deballer_lister_zip" après un autre appel "joindre_trouver_fichier_envoye"
indirect, donc la variable _TMP_DIR etait défini et le contenu de mon zip
déballer à cette endroit alors que je donnais un $tmp_dir completement
différent, cette destination restait vide et aucun message d'erreur de la
fonction "joindre_deballer_lister_zip".

Bref, je suggère de prendre en compte pour l'extraction la variable
$tmp_dir, et/ou d'ajouter test/définition de la variable _TMP_DIR en début
de fonction pour prévenir tout exécution "bizarre".

Vous recevez ce mail car vous êtes impliqués sur ce projet.
Pour changer les préférences d'envoi de mail, allez sur
http://core.spip.org/my/account

Effectivement, j'ai oublier de précisé. Spip 3.2.0 révision 23778 Le 19 mars 2018 à 14:35, <redmine`spip.org> a écrit : > La demande #4114 a été mise à jour par b b. > > > Salut et merci pour le signalement, sur quelle version de SPIP observes-tu > le problème ? > ------------------------------ > Anomalie #4114: paramètre media:joindre_deballer_lister_zip ignoré > <https://core.spip.net/issues/4114#change-13736> > > - Auteur: Alexis Z > - Statut: Nouveau > - Priorité: Normal > - Assigné à: > - Catégorie: > - Version cible: > - Resolution: > - Navigateur: > > Bonjour, > > Il me semble avoir trouvé une petite incohérence dans le code du plugin > media, plus précisément dans la fonction "joindre_deballer_lister_zip" > ligne 301, de media/inc/joindre_document.php. > Sauf erreur de ma part, cette fonction a pour but de déballer le contenu > d'un fichier zip qui lui est passé en paramètre dans un répertoire > temporaire et de retourner une liste décrivant sont contenus. > > Cette fonction prends deux paramètres $path et $tmp_dir: > - $path corresponds au chemin du fichier zip à déballer > - $tmp_dir corresponds au dossier temporaire ou celui-ci sera déballé > > Cette fonction utilise la librairie Pclzip. > > L'incohérence se trouve au niveau du deuximère paramètre, $tmp_dir, > celui-ci est censé indiquer dans quel répertoire le contenu du zip sera > déballer or ce chemin n'est pas pris en compte par la fonction > Pclzip->extraire (ligne 305), et n'est pas non plus pris en compte par la > fonction callback 'callback_deballe_fichier' indiqué à la fonction extraire > de Pclzip. > En effet dans le code le chemin pris en compte est déclaré dans un define > "_TMP_DIR" celui-ci déclaré à la ligne 140 de la fonction > "joindre_trouver_fichier_envoye" (meme fichier php, début ligne 26). > ($tmp_dir est uniquement utilisé dans la définition du chemin du fichier > qui est renvoyé par la fonction: ligne 317: 'tmp_name' => $tmp_dir . $f) > > Donc le paramètre $tmp_dir quasi non-utilisé induit en erreur car on > s'attend à se que le contenu ce trouve dans le chemin $tmp_dir de plus si > on appeler directement la focntion "joindre_deballer_lister_zip" sans > appeler "joindre_trouver_fichier_envoye" on ne définit pas _TMP_DIR et on > a une erreur incohmpréensible. > > Du coup, le pire sénario (mon cas) j'appelais > "joindre_deballer_lister_zip" après un autre appel "joindre_trouver_fichier_envoye" > indirect, donc la variable _TMP_DIR etait défini et le contenu de mon zip > déballer à cette endroit alors que je donnais un $tmp_dir completement > différent, cette destination restait vide et aucun message d'erreur de la > fonction "joindre_deballer_lister_zip". > > Bref, je suggère de prendre en compte pour l'extraction la variable > $tmp_dir, et/ou d'ajouter test/définition de la variable _TMP_DIR en début > de fonction pour prévenir tout exécution "bizarre". > ------------------------------ > > Vous recevez ce mail car vous êtes impliqués sur ce projet. > Pour changer les préférences d'envoi de mail, allez sur > http://core.spip.org/my/account >
b_b commented 5 years ago
Owner

Version cible mise à 3.2

**Version cible mise à 3.2**
Owner

Corrigé par https://zone.spip.org/trac/spip-zone/changeset/111718
Statut changé à Fermé

Corrigé par https://zone.spip.org/trac/spip-zone/changeset/111718 **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.