• [^] # Re: Attention quand même

    Posté par . En réponse à la dépêche La robustesse de nombreux navigateurs web mise en cause. Évalué à 2.

    Le while c'est une astuce pour pouvoir écrire :

    FREE0(p);

    Note le point virgule.

    Avec le while, la macro devient :
    do { free(x); x = NULL; } while(0);
    ce qui est syntaxiquement correct.

    Sans le while :
    { free(x); x = NULL; };
    ce qui est syntaxiquement incorrect : on ne peut pas avoir de point virgule après une fermeture d'accollade. Donc ca compilera pas.

    Tout bon kernel hacker sait cà voyons ;-)