Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • État Fermée
  • Pourcentage achevé
    100%
  • Type Anomalie
  • Catégorie Téléchargements
  • Assignée à Personne
  • Système d'exploitation Freebox Server V6 (Révolution)
  • Sévérité Haute
  • Priorité Très Basse
  • Basée sur la version 1.1.3
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes
  • Privée

FS#9101 - Impossible de télécharger un fichier contenant '?'

Enoncé du bug:


Lorsqu’un fichier comporte un ? (caractère : point d’interrogation / %3F) on ne peut pas le télécharger.

Si on tente de le faire on obtient une page d’erreur indiquant :
Firefox ne peut trouver le fichier à l’adresse http://mafreebox.freebox.fr/get.php.

Avec une erreur 404.

Comment reproduire :


renommer n’importe quel fichier avec un nom contenant un ?, dans mon exemple le fichier s’appelle ‘w?’ Tenter de le télécharger avec l’interface web.

Constatations :


Les entêtes envoyés sont bien :
(Post aller:)
filename=%2FDisque+dur%2FT%C3%A9l%C3%A9chargements%2Fw%3F

(On voit bien la fin, /w? correctement ‘escapé’ par le navigateur)

La réponse est :
HTTP/1.1 404 Not Found

Server: nginx

Date: Mon, 05 Dec 2011 17:46:38 GMT

Content-Type: text/html

Content-Length: 162

Connection: keep-alive

Content-Disposition: attachment; filename=”w?”

Il a donc bien compris qu’on voulait le fichier w?, ce fichier existe bien dans le répertoire (on vient de renommer) et pourtant on a une erreur 404.

Déduction :


Très certainement un mauvais ‘escape’ des caractères spéciaux en PhP qui fait que le ? dans le nom des fichiers est mal géré.

Autres bugs possibles similaires à tester :


Pour information, en ext3/4 (filesystem de la Freebox) les seuls caractères non valides dans un nom de fichier sont le / (parce que c’est le séparateur pour les chemins) et le ‘zéro binaire’ (pas facile à gérer en C dans les chaines ça !).
TOUS les autres caractères sont valides dans un nom de fichier (même des choses comme retour à la ligne !).

Je ferai l’essai plus tard avec les caractères %01 à %1F, qui sont difficiles à obtenir dans un nom de fichier... contrairement à un ? qui est trivial par la méthode ci-dessus. (Renommer marche bien avec les ‘?’, mais c’est géré par un CGI et pas par un PHP)

Fermée par  Freebox Robot
27.06.2013 09:16
Raison de la fermeture :  Evolution intégrée
Commentaires de fermeture :  

En 2.0.0

zakhar a commenté le 06.12.2011 18:23

Testé ce jour avec la 1.1.4 chargée à l’instant sur le ‘Server’, le bug persiste.

lemage77 a commenté le 16.12.2011 21:39

+1

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche