Skip to content

sexp_make_exception can clobber SEXP_G_OOM_ERROR #1168

Description

@dcolascione

sexp sexp_make_exception (sexp ctx, sexp kind, sexp message, sexp irritants,
                          sexp procedure, sexp source) {
  sexp exn = sexp_alloc_type(ctx, exception, SEXP_EXCEPTION);
  sexp_exception_kind(exn) = kind;
  sexp_exception_message(exn) = message;
  sexp_exception_irritants(exn) = irritants;
  sexp_exception_procedure(exn) = procedure;
  sexp_exception_source(exn) = source;
  sexp_exception_stack_trace(exn) = SEXP_FALSE;
  return exn;
}

What happens if sexp_alloc_type returns SEXP_G_OOM_ERROR? Now you're mutating the singleton before you return it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions