>> + } >> + >> + /* Reserve memory for args from shared mem */ >> + shm = odp_shm_reserve("shm_args", sizeof(args_t), >> + ODP_CACHE_LINE_SIZE, 0); > > shm_args is allocated here, but never freed. > >> >> + >> + free(gbl_args->appl.if_names); >> + free(gbl_args->appl.if_str); >> + >> + if (odp_pool_destroy(pool)) { >> + LOG_ERR("Error: pool destroy\n"); >> + exit(EXIT_FAILURE); >> + } >> + > > odp_shm_free(shm) belongs here for normal termination. >
Thanks, will fix this. This same issue is also present in multiple other example applications. I’ll create a separate patch to fix those. -Matias