Skip to content

segfault with improper use of super() #17728

@jepler

Description

@jepler

Port, board and/or hardware

unix, coverage build

MicroPython version

MicroPython v1.26.0-preview.387.ge4e97f5aa7.dirty on 2025-07-20; linux [GCC 12.2.0] version

Reproduction

Run the following code:

import framebuf

class FB(framebuf.FrameBuffer):
    def __init__(self, n):
        self = n
        super().__init__(bytearray(2 * n * n), n, n, framebuf.RGB565)

fb = FB(n=3)

Expected behaviour

super() should not segfault.

Observed behaviour

crash in native_base_init_wrapper

Program received signal SIGSEGV, Segmentation fault.
0x00005555556120c7 in native_base_init_wrapper (n_args=5, args=0x7fffffffd6c0, 
    kw_args=0x7fffffffd510) at ../../py/objtype.c:91
91	    instance_count_native_bases(self->base.type, &native_base);
(gdb) p self
$1 = (mp_obj_instance_t *) 0x7

Additional Information

This is a minimized version of a script produced by fuzzing micropython.

Code of Conduct

Yes, I agree

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions