Skip to content

Commit 43b898d

Browse files
committed
feat(ir_learn): Change learn_param to dynamic allocation
Allocate memory for learn_param dynamically and check for allocation failure.
1 parent 21670a6 commit 43b898d

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

components/ir/ir_learn/ir_learn.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ static void ir_learn_task(void *arg)
265265
}
266266
}
267267
}
268+
269+
free(learn_param);
268270
}
269271

270272
esp_err_t ir_learn_restart(ir_learn_handle_t ir_learn_hdl)
@@ -508,10 +510,12 @@ esp_err_t ir_learn_new(const ir_learn_cfg_t *cfg, ir_learn_handle_t *handle_out)
508510
ir_learn_t *ir_learn_ctx = calloc(1, sizeof(ir_learn_t));
509511
IR_LEARN_CHECK(ir_learn_ctx, "no mem for ir_learn_ctx", ESP_ERR_NO_MEM);
510512

511-
ir_learn_common_param_t learn_param = {
512-
.user_cb = cfg->callback,
513-
.ctx = ir_learn_ctx,
514-
};
513+
ir_learn_common_param_t *learn_param = malloc(sizeof(ir_learn_common_param_t));
514+
if (learn_param == NULL) {
515+
return -ESP_ERR_NO_MEM;
516+
}
517+
learn_param->user_cb = cfg->callback;
518+
learn_param->ctx = ir_learn_ctx;
515519

516520
rmt_rx_channel_config_t rx_channel_cfg = {
517521
.clk_src = cfg->clk_src,

0 commit comments

Comments
 (0)