Browse code

load: don't leak file handles; don't ignore read errors

Sigrid Solveig Haflínudóttir authored on 17/11/2021 13:21:27
Showing 1 changed files
... ...
@@ -422,8 +422,11 @@ static int
422 422
 load(Uxn *u, char *rom)
423 423
 {
424 424
 	FILE *f;
425
+	int r;
425 426
 	if(!(f = fopen(rom, "rb"))) return 0;
426
-	fread(u->ram.dat + PAGE_PROGRAM, sizeof(u->ram.dat) - PAGE_PROGRAM, 1, f);
427
+	r = fread(u->ram.dat + PAGE_PROGRAM, 1, sizeof(u->ram.dat) - PAGE_PROGRAM, f);
428
+	fclose(f);
429
+	if(r < 1) return 0;
427 430
 	fprintf(stderr, "Loaded %s\n", rom);
428 431
 	SDL_SetWindowTitle(gWindow, rom);
429 432
 	return 1;