mirror of
https://github.com/libretro/RetroArch
synced 2025-04-18 14:42:30 +00:00
Merge pull request #993 from lioncash/calloc
state_tracker: Guard against a possible calloc failure and fix state_tracker_free
This commit is contained in:
commit
6ba76d8c4b
@ -85,6 +85,14 @@ state_tracker_t* state_tracker_init(const struct state_tracker_info *info)
|
|||||||
|
|
||||||
tracker->info = (struct state_tracker_internal*)
|
tracker->info = (struct state_tracker_internal*)
|
||||||
calloc(info->info_elem, sizeof(struct state_tracker_internal));
|
calloc(info->info_elem, sizeof(struct state_tracker_internal));
|
||||||
|
|
||||||
|
if (!tracker->info)
|
||||||
|
{
|
||||||
|
RARCH_ERR("%s: Allocation of state tracker info failed.", __FUNCTION__);
|
||||||
|
free(tracker);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
tracker->info_elem = info->info_elem;
|
tracker->info_elem = info->info_elem;
|
||||||
|
|
||||||
for (i = 0; i < info->info_elem; i++)
|
for (i = 0; i < info->info_elem; i++)
|
||||||
@ -138,10 +146,14 @@ state_tracker_t* state_tracker_init(const struct state_tracker_info *info)
|
|||||||
|
|
||||||
void state_tracker_free(state_tracker_t *tracker)
|
void state_tracker_free(state_tracker_t *tracker)
|
||||||
{
|
{
|
||||||
free(tracker->info);
|
if (tracker)
|
||||||
|
{
|
||||||
|
free(tracker->info);
|
||||||
#ifdef HAVE_PYTHON
|
#ifdef HAVE_PYTHON
|
||||||
py_state_free(tracker->py);
|
py_state_free(tracker->py);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
free(tracker);
|
free(tracker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user