
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.
- Effectuez la mise à jour de votre Freebox Server en 1.1.9.1 en date du 17 janvier 2013
- 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 '?'
| Anomalie | |
| Seedbox | |
| Nouvelle | |
| Personne | |
| Tous |
| Haute | |
| Normale | |
| 1.1.3 | |
| Non décidé | |
| Non décidé | |
![]() |
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)
-------------
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

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