fix bugs found in brk & add simple security checks on lx_free
[lunaix-os.git] / lunaix-os / kernel / k_main.c
index 121273bed02243126a09f629905968e04bed6652..565e5bc0b545af3c355d6eeec6d6ab692a1c042c 100644 (file)
@@ -1,6 +1,6 @@
 #include <stdint.h>
 #include <lunaix/mm/vmm.h>
-#include <lunaix/mm/dmm.h>
+#include <lunaix/mm/kalloc.h>
 #include <hal/cpu.h>
 #include <libc/stdio.h>
 #include <lunaix/spike.h>
@@ -23,20 +23,31 @@ _kernel_main()
 
     // test malloc & free
     
-    uint32_t** arr = (uint32_t**) lx_malloc(10 * sizeof(uint32_t*));
+    uint32_t** arr = (uint32_t**) kmalloc(10 * sizeof(uint32_t*));
     
     for (size_t i = 0; i < 10; i++)
     {
-        arr[i] = (uint32_t*) lx_malloc((i + 1) * 2);
+        arr[i] = (uint32_t*) kmalloc((i + 1) * 2);
     }
 
-    void* big_ = lx_malloc(8192);
 
     for (size_t i = 0; i < 10; i++)
     {
-        lx_free(arr[i]);
+        kfree(arr[i]);
     }
+
+    void* big_ = kmalloc(8192);
     
-    lx_free(arr);
-    lx_free(big_);
+    // good free
+    kfree(arr);
+    kfree(big_);
+
+    uint8_t* bad1 = kmalloc(123);
+    void* bad2 = kmalloc(1);
+
+    *((uint32_t*)(bad1 - 4)) = 0xc2343312UL;
+
+    // bad free
+    kfree(bad1);
+    kfree(bad2 - 2);
 }
\ No newline at end of file