IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[BUG] segmentation fault avec le filtre string.strip_tags


Sujet :

Langage PHP

  1. #1
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut [BUG] segmentation fault avec le filtre string.strip_tags
    J'obtiens systématiquement un segmentation fault dés lors que j'utilise le filtre de flux string.strip_tags avec une version 7.x (0, 1 et 2) de PHP (sur Mint 17.3). Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo file_get_contents('php://filter/string.strip_tags/resource=data://text/plain,<bic/>youhou<bac/>');
    Même résultat sur 3v4l.org.
    J'ai également contrôlé que le filtre est bien disponible via stream_get_filters() et que les autres filtres fonctionnent normalement. Que ce soit sous Apache ou en ligne de commande, même résultat.

    Par contre aucun problème avec une version 5.6 (ni avec les fonctions strip_tags() ou fgetss() en version 7.x).
    Je n'ai pas trouvé de rapport de bug à ce sujet sur php.net.

    Est-ce que j'ai raté quelque chose? Avez-vous le même problème chez vous?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Sur Windows, avec PHP 5.6, ta ligne fonctionne. Avec PHP 7.0, ça pédale dans la choucroute avant de finir par mourir. Mes logs ne contiennent pas grand chose d'intéressant, mais je confirme que la ligne pose problème.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Merci pour ton retour Celira,
    C'est bien ce que je soupçonnais, ça m'a tout l'air d'un bug.
    Si je perse les mystères de gdb, je me hasarderai peut-être à poster un rapport de bug sur php.net. (foie de marmotte)
    Encore merci.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  4. #4
    Membre éclairé
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 335
    Points : 715
    Points
    715
    Par défaut
    Bonjour,
    Même constat que Celira.
    En attendant, on doit pouvoir utiliser strip_tags dans son propre filtre :
    http://php.net/manual/fr/function.st...r-register.php
    J'ai recopié l'exemple, sans rien analyser, mais en remplaçant quand même strtoupper par strip_tags :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    class strip_tags2 extends php_user_filter
    	{
    	function filter($in,$out,&$consumed,$closing)
    		{
    		while($bucket=stream_bucket_make_writeable($in))
    			{
    			$bucket->data=strip_tags($bucket->data);
    			$consumed+=$bucket->datalen;
    			stream_bucket_append($out,$bucket);
    			}
    		return PSFS_PASS_ON;
    		}
    	}
    stream_filter_register('string.strip_tags2','strip_tags2');
    echo file_get_contents('php://filter/string.strip_tags2/resource=data://text/plain,<bic/>youhou<bac/>');
    ?>

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Oui, effectivement on peut "recréer" le filtre soi-même comme la fonction strip_tags(), elle, ne pose pas de problèmes.
    Merci pour le workaround.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

Discussions similaires

  1. Segmentation fault avec strcmp
    Par FenX. dans le forum Débuter
    Réponses: 6
    Dernier message: 10/08/2007, 08h14
  2. segmentation fault avec wxGLCanvas
    Par Ardeciel dans le forum wxWidgets
    Réponses: 1
    Dernier message: 20/03/2007, 20h13
  3. Probleme de segmentation fault avec sprintf
    Par MathG dans le forum C++
    Réponses: 5
    Dernier message: 14/12/2006, 01h12
  4. Segmentation fault avec glCompressedTexImage2DARB
    Par patbier dans le forum OpenGL
    Réponses: 5
    Dernier message: 12/12/2005, 10h32
  5. Pb segmentation fault avec glutinit()
    Par pipistrelle dans le forum GLUT
    Réponses: 2
    Dernier message: 17/11/2004, 23h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo