Freebox Server

Se connecter
Mot de passe perdu? Pour s'inscrire sur Freeplayer.org cliquez ICI

du projet:

Ce projet correspond aux anomalies ou aux demandes d'évolutions logicielles pour le Freebox Server.

Pour des problèmes ADSL, vous devez vous adresser directement au 3244.

N'indiquez ici que les bugs ou les demandes d'évolution concernant le Freebox Server.

Pour les remarques concernant le Freebox Player, vous pouvez le faire sur la page dédiée.

  1. Effectuez la mise à jour de votre Freebox Server en 1.1.9.1 en date du 17 janvier 2013
  2. Vérifiez que votre problème ou votre demande d'évolution n'a pas déjà été posté auparavant.

Merci d'avance.

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

Concerne le projet— Freebox Server
Ouverte par zakhar (zakhar) - lundi 5 décembre, 2011 18:58:31
Anomalie
Seedbox
Nouvelle
Personne
Tous
Haute
Normale
1.1.3
Non décidé
Non décidé
0%
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)
Cette tâche dépend de

Cette tâche bloque la fermeture de
Commentaire de zakhar (zakhar) - mardi 6 décembre, 2011 19:23:00

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


Commentaire de lemage77 (lemage77) - vendredi 16 décembre, 2011 22:39:16

+1