mips: fix potential alignment error
This commit is contained in:
parent
85f1963d52
commit
45b5c838a6
|
@ -870,7 +870,22 @@ static int mips_m4k_read_memory(struct target *target, uint32_t address,
|
||||||
if (((size == 4) && (address & 0x3u)) || ((size == 2) && (address & 0x1u)))
|
if (((size == 4) && (address & 0x3u)) || ((size == 2) && (address & 0x1u)))
|
||||||
return ERROR_TARGET_UNALIGNED_ACCESS;
|
return ERROR_TARGET_UNALIGNED_ACCESS;
|
||||||
|
|
||||||
void * t = buffer;
|
/* since we don't know if buffer is aligned, we allocate new mem that is always aligned */
|
||||||
|
void *t = NULL;
|
||||||
|
|
||||||
|
if (size > 1)
|
||||||
|
{
|
||||||
|
t = malloc(count * size * sizeof(uint8_t));
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Out of memory");
|
||||||
|
return ERROR_FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
t = buffer;
|
||||||
|
}
|
||||||
|
|
||||||
/* if noDMA off, use DMAACC mode for memory read */
|
/* if noDMA off, use DMAACC mode for memory read */
|
||||||
int retval;
|
int retval;
|
||||||
|
@ -894,6 +909,9 @@ static int mips_m4k_read_memory(struct target *target, uint32_t address,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((size > 1) && (t != NULL))
|
||||||
|
free(t);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue