Closed NicolasFloquet closed 9 years ago
Je mets ce ticket en lien avec #180.
En analysant, j'arrive à détourer quelques problèmes bien spéficiques. Je vais créer les tickets associés et les référencer ici.
Dans notre cas, le signal est probablement reçu pendant un syscall. celà implique que frame est initialisé à
frame = (sigframe*)(get_default_tss()->esp1);
Une piste à explorer serait de vérifier que esp1 est bien conservé pour chaque process (perdu à l'ordonancement?)
Bonne pioche. le scheduleur ne restaure que partiellement la TSS (esp0 et ss0). Il faudrait faire de même pour esp1 (ss1 on s'en cogne)
Des news depuis ?
Je n'arrive plus à reproduire.
Bug critique/majeur
Par moment, la fonction exec_sighandler va écrire un peu n'importe où. Chez moi j'ai constaté que sigframe* frame pointe vers une zone de mémoire assez aléatoire, et la méthode fini par écraser stdin, ce qui provoque un crash à la prochaine utilisation de stdin.