Skip to content

UB with malloc of atomic #30

@tripping-code

Description

@tripping-code
  1. should malloc() for every atomic type. this is because atomic type may include additional lock primitives or have stricter alignmnet requirements.
malloc(sizeof(atomic_uint32_t) * NUM_U32_PARAMS);
malloc(sizeof(atomic_int8_t) * NUM_I8_PARAMS);
  1. must initialize atomic after malloc(). this is because atomic type may include additional lock primitives.
atomic_uint16_t *p_u16 = malloc(sizeof(atomic_uint16_t) * NUM_U16_PARAMS);
for (size_t i = 0; i < NUM_U16_PARAMS; i++)
{
    atomic_init(&p_u16[i], g_param_table[this_param_idx].def.u16);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions