Fix buffer overflow error by only supplying st_size to fread once

This commit is contained in:
CSDUMMI 2025-05-10 18:42:55 +02:00
parent 47406b5def
commit 2b3c39d18c
2 changed files with 2 additions and 4 deletions

View file

@ -3,10 +3,9 @@
# SPDX-License-Identifier: GPL-3.0
wai: wai.c
gcc -Wall -Wextra -o wai wai.c
gcc -ggdb -Wall -Wextra -o wai wai.c
# tests/factorial.wasm: tests/factorial.wat
.PHONY: tests
tests:
wat2wasm -o tests/factorial.wasm tests/factorial.wat

3
wai.c
View file

@ -338,7 +338,6 @@ int parse_module(u_char *binary, size_t len) {
return i;
}
int main(int argc, char **argv) {
if (argc != 2) {
@ -356,7 +355,7 @@ int main(int argc, char **argv) {
printf("size: %ld\n", st.st_size);
unsigned char *binary = malloc(st.st_size);
fread(binary, st.st_size, st.st_size, file);
fread(binary, st.st_size, 1, file);
if (parse_module(binary, st.st_size) == -1) {
printf("error :(\n");