Steel Bank Common Lisp

Memory fault on printing a malformed condition

Reported by Stas Boukarev on 2011-01-21
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
High
Unassigned

Bug Description

(error 'simple-error :format-control "" :format-arguments 8)
results in a memory fault, this boils down to

(sb-kernel::simple-condition-printer (make-condition 'simple-error :format-control "" :format-arguments 8) t)

It expects a list, but doesn't perform a type-check.

Changed in sbcl:
assignee: nobody → Nikodemus Siivola (nikodemus)
importance: Undecided → High
status: New → Triaged
Changed in sbcl:
status: Triaged → In Progress
Nikodemus Siivola (nikodemus) wrote :

This is really curious.

For some reason XC omits the type check for the argument to VALUES-LIST here.

Nikodemus Siivola <email address hidden> writes:

> This is really curious.
>
> For some reason XC omits the type check for the argument to VALUES-LIST
> here.

It's because simple-control-format-arguments is a known function with a
LIST return type, no?

Christophe

Nikodemus Siivola (nikodemus) wrote :

Yes, but that type information is lost somehow during the build, so that that function is compiled trusting that, but SIMPLE-FORMAT-ARGUMENTS itself doesn't know it's supposed to check its return type.

(My guess is to blame DEFINE-CONDITION.)

Nikodemus Siivola (nikodemus) wrote :

1.0.47.23.

Changed in sbcl:
assignee: Nikodemus Siivola (nikodemus) → nobody
status: In Progress → Fix Committed
Stas Boukarev (stassats) on 2011-05-09
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers