fix: add strings terminators

This commit is contained in:
samsonium
2026-11-06 12:02:37 +03:00
parent d95ff88b66
commit 376e7bd1b4
12 changed files with 198 additions and 37 deletions
+18 -2
View File
@@ -1,6 +1,7 @@
#include <common/fzl_extern.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vm/internals/reader.h>
@@ -17,7 +18,10 @@ bool vm_rd_extern_libs(fzl_vm_reader_t *reader, FILE *fd)
reader->extern_libs = malloc(sizeof(char *) * libs_count);
if (!reader->extern_libs)
{
snprintf(internal_error, sizeof(internal_error), "out of memory");
return false;
}
memset(reader->extern_libs, 0, sizeof(char *) * libs_count);
@@ -30,17 +34,29 @@ bool vm_rd_extern_libs(fzl_vm_reader_t *reader, FILE *fd)
ok = vm_rd_u16(fd, 1, &name_sz);
if (!ok || name_sz < 1)
{
snprintf(internal_error, sizeof(internal_error),
"failed to read lib #%u name size", i);
return false;
}
ok = vm_rd_char(fd, name_sz, name);
if (!ok)
{
snprintf(internal_error, sizeof(internal_error),
"failed to read lib #%u name", i);
return false;
}
char *val = malloc(sizeof(char) * name_sz);
char *val = malloc(sizeof(char) * name_sz + 1);
if (!val)
{
snprintf(internal_error, sizeof(internal_error),
"out of memory on lib #%u name allocation", i);
return false;
}
memset(val, 0, sizeof(char) * name_sz);
memset(val, 0, sizeof(char) * name_sz + 1);
memcpy(val, name, sizeof(char) * name_sz);
reader->extern_libs[i] = val;
}