mirror of
https://github.com/pevans/erc-c.git
synced 2024-11-27 20:51:17 +00:00
We missed the size multiplier for memset()
In doing so, only a small portion of memory would have reliably been set to zero; specifically, just the first element! This change should resolve some intermittent test failures to guarantee that all memory be zeroed.
This commit is contained in:
parent
ed1a7b3278
commit
3f3210205f
@ -40,7 +40,7 @@ vm_segment_create(size_t size)
|
||||
|
||||
// We should zero out memory and make explicit that any new segment
|
||||
// begins life in that state.
|
||||
memset(segment->memory, 0, sizeof(vm_8bit));
|
||||
memset(segment->memory, 0, sizeof(vm_8bit) * size);
|
||||
|
||||
segment->read_table = malloc(sizeof(vm_segment_read_fn) * size);
|
||||
if (segment->read_table == NULL) {
|
||||
@ -59,8 +59,8 @@ vm_segment_create(size_t size)
|
||||
// read/write mapper code to attempt to a run a function with
|
||||
// garbage. We could have undefined garbage! We can only properly
|
||||
// work with defined garbage.
|
||||
memset(segment->read_table, (int)NULL, sizeof(vm_segment_read_fn));
|
||||
memset(segment->write_table, (int)NULL, sizeof(vm_segment_write_fn));
|
||||
memset(segment->read_table, (int)NULL, sizeof(vm_segment_read_fn) * size);
|
||||
memset(segment->write_table, (int)NULL, sizeof(vm_segment_write_fn) * size);
|
||||
|
||||
segment->size = size;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user