demos: fclose in cube and tri

Balance every fopen with fclose.
diff --git a/demos/cube.c b/demos/cube.c
index 9702299..7106266 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -965,21 +965,29 @@
         return false;
 
     cPtr = fgets(header, 256, fPtr); // P6
-    if (cPtr == NULL || strncmp(header, "P6\n", 3))
+    if (cPtr == NULL || strncmp(header, "P6\n", 3)) {
+        fclose(fPtr);
         return false;
+    }
 
     do {
         cPtr = fgets(header, 256, fPtr);
-        if (cPtr == NULL)
+        if (cPtr == NULL) {
+            fclose(fPtr);
             return false;
+        }
     } while ( !strncmp(header, "#", 1) );
 
     sscanf(header, "%u %u", height, width);
-    if (rgba_data == NULL)
+    if (rgba_data == NULL) {
+        fclose(fPtr);
         return true;
+    }
     fgets(header, 256, fPtr); // Format
-    if (cPtr == NULL || strncmp(header, "255\n", 3))
+    if (cPtr == NULL || strncmp(header, "255\n", 3)) {
+        fclose(fPtr);
         return false;
+    }
 
     for(int y = 0; y < *height; y++)
     {
@@ -993,7 +1001,7 @@
         rgba_data += layout->rowPitch;
     }
     fclose(fPtr);
-  return true;
+    return true;
 }
 
 static void demo_prepare_texture_image(struct demo *demo,
@@ -1457,6 +1465,7 @@
 
     *psize = size;
 
+    fclose(fp);
     return shader_code;
 }