• [^] # Re: Aucun rapport avec le noyau

    Posté par . En réponse à la dépêche Faille dans certains noyaux : détournement de stdio/stderr. Évalué à 2.

    C'est pas bien dur de verifier ca dans les applis : il suffit d'ouvrir /dev/null pour les descripteurs que l'on utilise pas. Par exemple pour la commande pure-ftpwho de pureftpd (qui peut etre mise en setuid), je fais comme ca pour ne laisser que le descripteur 1 ouvert (si la fonction renvoit -1 => exit du programme avant d'avoir ecrit quoi que ce soit) :

    static int closedesc_but1(void)
    {
    int fodder;

    (void) close(0);
    if ((fodder = open("/dev/null", O_RDONLY)) == -1) {
    return -1;
    }
    (void) dup2(fodder, 0);
    if (fodder > 0) {
    (void) close(fodder);
    }
    if (fcntl(1, F_GETFD) == -1) {
    return -1;
    }
    if (fcntl(2, F_GETFD) != -1) {
    if ((fodder = open("/dev/null", O_WRONLY)) == -1) {
    return -1;
    }
    (void) dup2(fodder, 2);
    if (fodder > 2) {
    (void) close(fodder);
    }
    }
    return 0;
    }