TacOS-team / tacos

Système d'exploitation / Operating System
GNU General Public License v3.0
9 stars 4 forks source link

exec_sighandler jardine la mémoire #190

Closed NicolasFloquet closed 9 years ago

NicolasFloquet commented 10 years ago

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.

MaximeCheramy commented 10 years ago

Je mets ce ticket en lien avec #180.

NicolasFloquet commented 10 years ago

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.

NicolasFloquet commented 10 years ago

192

NicolasFloquet commented 10 years ago

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?)

NicolasFloquet commented 10 years ago

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)

MaximeCheramy commented 10 years ago

Des news depuis ?

MaximeCheramy commented 9 years ago

Je n'arrive plus à reproduire.