|
@@ -409,7 +409,7 @@ bool minergate_get_stats(struct cgpu_info * const dev)
|
|
|
{
|
|
{
|
|
|
long nums[0x80];
|
|
long nums[0x80];
|
|
|
char *endptr;
|
|
char *endptr;
|
|
|
- unsigned i;
|
|
|
|
|
|
|
+ int i;
|
|
|
float max_temp = 0;
|
|
float max_temp = 0;
|
|
|
for (i = 0; 1; ++i)
|
|
for (i = 0; 1; ++i)
|
|
|
{
|
|
{
|
|
@@ -427,8 +427,14 @@ bool minergate_get_stats(struct cgpu_info * const dev)
|
|
|
p = endptr;
|
|
p = endptr;
|
|
|
}
|
|
}
|
|
|
i -= skip_stats;
|
|
i -= skip_stats;
|
|
|
- long *new_stats = malloc(sizeof(*state->stats) * i);
|
|
|
|
|
- memcpy(new_stats, &nums[skip_stats], sizeof(*nums) * i);
|
|
|
|
|
|
|
+ long *new_stats;
|
|
|
|
|
+ if (likely(i > 0))
|
|
|
|
|
+ {
|
|
|
|
|
+ new_stats = malloc(sizeof(*state->stats) * i);
|
|
|
|
|
+ memcpy(new_stats, &nums[skip_stats], sizeof(*nums) * i);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ new_stats = NULL;
|
|
|
mutex_lock(&dev->device_mutex);
|
|
mutex_lock(&dev->device_mutex);
|
|
|
free(state->stats);
|
|
free(state->stats);
|
|
|
state->stats = new_stats;
|
|
state->stats = new_stats;
|