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

  • Status Closed
  • Percent Complete
    100%
  • Task Type Anomalie
  • Category Téléchargements
  • Assigned To No-one
  • Operating System Freebox Server V6 (Révolution)
  • Severity High
  • Priority Very Low
  • Reported Version 1.1.3
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private

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)

Closed by  Freebox Robot
27.06.2013 09:16
Reason for closing:  Evolution intégrée
Additional comments about closing:  

En 2.0.0

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

+1

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing