Merge 6e09cda0fe into 8582785f93
commit
2ca720b75f
|
|
@ -2966,6 +2966,32 @@ static int tracker_deal_server_list_all_groups(struct fast_task_info *pTask)
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// avoid coredump when pTask->data is not enough for all "TrackerGroupStat"s
|
||||||
|
int buff_size = (int)(sizeof(TrackerHeader) + g_groups.count * sizeof(TrackerGroupStat));
|
||||||
|
if (pTask->size < buff_size)
|
||||||
|
{
|
||||||
|
char *new_buff = (char *)malloc(buff_size);
|
||||||
|
if (new_buff == NULL)
|
||||||
|
{
|
||||||
|
logWarning("file: "__FILE__", line: %d, " \
|
||||||
|
"malloc %d bytes fail, " \
|
||||||
|
"errno: %d, error info: %s", \
|
||||||
|
__LINE__, buff_size, \
|
||||||
|
errno, STRERROR(errno));
|
||||||
|
return errno != 0 ? errno : ENOMEM;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pTask->size = buff_size;
|
||||||
|
pTask->data = new_buff;
|
||||||
|
|
||||||
|
logDebug("file: "__FILE__", line: %d, " \
|
||||||
|
"pTask->data not enough , realloc pTask->data, " \
|
||||||
|
"old pTask->size: %d, new pTask->size: %d", \
|
||||||
|
__LINE__, pTask->size, buff_size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
groupStats = (TrackerGroupStat *)(pTask->data + sizeof(TrackerHeader));
|
groupStats = (TrackerGroupStat *)(pTask->data + sizeof(TrackerHeader));
|
||||||
pDest = groupStats;
|
pDest = groupStats;
|
||||||
ppEnd = g_groups.sorted_groups + g_groups.count;
|
ppEnd = g_groups.sorted_groups + g_groups.count;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue