Skip to content

[maiko] bug in soft stack overflow handling code #2370

@nbriggs

Description

@nbriggs

In llstk.c:extendstack(), if the stack overruns the guard stack address and tries to generate a soft "stackoverflow" interrupt, it does so by setting extended_frame = 1 and the Lisp atom \PENDINGINTERRUPT = T, but later in the stack checking code we find \PENDINGINTERRUPT |= extended_frame -- which would turn the pending interrupt T (atom 76) into the atom U (atom 77), or if \PENDINGINTERRUPT happened to have become NIL by the time this happens, it would turn that into NOBIND.

I believe the extendstack() code should be setting extended_frame = T rather than 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions