Muahaha non ce n’est pas sale!

August 24th, 2005 par gab

tu es comme les fleurs du jardin magique ma petite, ton corps change…

malgré son appellation barbare et sa description aux allures sales, voila un bidule tout plein de coma pour te gacher ta journée de sub-productivité allongé dans un transat du jardin, j’ai nommé un bidule équivalent à RUNDLL32 (ndlr: ça vient d’un OS pas clean) pour menelusme, pour faire plein de trucs poilus avec des .so depuis ton shell convivial.

le coupable
Source: l’indic

Update

Dek\ est beau, dek\ est grand. Dek\ nous propose ce patch convivial qui permet à cette petite perle de fonctionner sous FreeBSD. Et en prime, un peu d’explications de l’interessé :

[dek\] Dans la runlib, il mprotect une page
[dek\] Pour savoir si la valeur retournée par la
fontion du .so executée
[dek\] Est une adresse mémoire valide
[dek\] Sauf que sous linux, ça retourne -1 dans ce cas
mprotect
[dek\] Sous BSD, ça ne retourne -1 que si l’adresse
n’est pas alignée
[dek\] Donc il s’agissait de trouver une fonction qui
check qu’une adresse est valide
[dek\] Donc j’avais 4298945834958 solutions de merde
[dek\] Et j’ai parlé à mayhem/dvorak de ce soucis, pour
leur demander leur avis
[dek\] dvorak m’a dit “write returns EFAULT in case of error”
[dek\] Et c’est vrai, c’est pas con, les syscall ne
peuvent pas segfault
[dek\] Donc tous ceux qui acceptent une adresse
[dek\] Sont obligées de checker qu’elles est valide
[dek\] Et retournent EFAULT en cas d’erreur
[dek\] Donc j’utilise open() moi.


C’EST PAS DLA MERDE CA MADAME

Posté dans Muahaha | 9 Comments »

9 Reponses pour “non ce n’est pas sale!”

  1. dek Says:

    Hop
    Comme autre solution, il y avait mincore(2), si la page n’est pas swappée.

    Sinon, je n’ai pas réussi à faire fonctionner write sur /dev/null. write(2) retournait toujours “count” en valeur de retour, même si l’adresse est invalide. En revanche, write(2) sur stdin/stdout/stderr retourne bien -1 si l’adresse est invalide. Des idées ?

  2. gab Says:

    write
    le souci c’est que stdin/stdout/stderr peuvent etre fermés si c’est un daemon (et donc risque de se chopper un EBADF avant le EFAULT)

    il y a fort longtemps j’utilisais ça:

    int tptr(void *ptr)
    {
    return ((access((char *)ptr, 0) == -1) && (errno == EFAULT)) ? -1 : 0;
    }

  3. gab Says:

    /dev/null
    dans /usr/src/linux/drivers/char/mem.c:

    static ssize_t write_null(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
    {
    return count;
    }

    un peu plus loin:

    static struct file_operations null_fops = {
    .llseek = null_lseek,
    .read = read_null,
    .write = write_null,
    };

    Mélémentaire mon Mher Matson…

  4. Anonyme Says:

    hop
    Patch modifié pour prendre en compte le access() de gab : beaucoup plus léger qu’un open et n’oblige pas à inclure des headers manquant.

  5. oliv3 Says:

    c’est beau
    et ça me fait penser à tous nos AMIS qui disent que “ça ne marchera jamais vos trucs open-source” :)

  6. iMil Says:

    Re: c’est beau
    “vos trucs d’étudiants la.. c’est sympa pour s’amuser mais ca percera jamais dans le milieu professionel, IL FAUT VOUS REVEILLER MONSIEUR XXXX ON EST PLUS EN 1968 !”.

    Toute ressemblance avec des faits ayant existé serait purement fortuite.

    iMil_1996

  7. Anonyme Says:

    Parce que nous le valons bien
    douche de “oil of codaze” pour tous :)

  8. oliv3 Says:

    update
    ça ne remplacera jamais X25

  9. Anonyme Says:

    vous vivez dans des combis volkswagen!
    bande de sales jeunes pouilleux! bons à rien! feignants!

Répondre

Vous devez être identifié pour poster un commentaire.

Identification

Enregistrez-vous

SQUAD!

GCU live

[22:36:27] ChloeD cela dit ça serait un système intéressant, ça, les Round Robin Tab
[22:36:45] CMoi je prefererais du LRU
[22:36:57] ChloeD ça se tient aussi
[22:37:05] ChloeD mais le round robin oblige à se discipliner
[22:37:09] ChloeD et a donc des vertus éducatives
[22:37:10] ChloeD que le LRU n'a pas
[22:37:18] ChloeD (le LRU t'apprend à être un gros porc)
<-- grao left irc: Quit: Leaving.
<-- lissyx left irc: Ping timeout: 245 seconds
[22:46:25] semarie http://www.lopinion.fr/b log/dessins-actualite #dessins#
[22:47:40] dermiste omg, l'opinion

Miiissioudaaam'

Archives:

Meta:

Hosted by:

NBS-System