Et voila, saferun fonctionne maintenant.
Ça ne gère que le C et le C++ pour l'instant (ironique de la part d'un programme globalement écrit en OCaml), mais ça tourne sans problème et de manière sécurisé (du moins, je l'espère).
Le code source est accessible là:
le programme lui même
http://svn.quare.fr/viewvc/projets/trunk/saferun.tar.gz?view=tar
un binding ocaml pour la fonction ptrace
http://svn.quare.fr/viewvc/projets/trunk/libptrace-ocaml.tar.gz?view=tar
le makefile pour compiler ces deux programmes
http://svn.quare.fr/viewvc/projets/trunk/Makefile/OCaml.mk?view=co
Mais en BONUS!! le service est accessible en telnet surla machien quare.fr par le port 5000
vous tapez : telnet quare.fr 5000
puis vous copiez un code source en C ou en C++ (en mettant sur la première ligne C ou C++ selon le langage) et vous terminez en tapant EOF et hop vous avez la sorti de votre programme !
Bon si la connexion ne se fait pas, attendez un peu, car j'ai pas mal limité l'accès au service, mais normalement il n'y a pas de problème. Il faudra que je fasse une meilleur interface à tout ça, mais dites moi ce que vous en pensez.
J'essayerais aussi d'ajouter d'autre langage (pour l'instant le runtime caml me pose problème car il vaut modifier la gestion des signaux et c'est trop sensible pour que je le permette, donc je vais devoir émuler ces appels systèmes et le man de ptrace est déjà un peu vague (voir faux par endroit), mais là, s'il dit que c'est possible, il ne donne pas la moindre indication sur comment...)