From b6765812f7da9feccc271e8e0b06f166e8054386 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sat, 19 Sep 2026 20:32:34 -0400 Subject: fix bugs with map using untyped obj --- sys/syscall_pagedir.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'sys/syscall_pagedir.c') diff --git a/sys/syscall_pagedir.c b/sys/syscall_pagedir.c index f80da76..33acc87 100644 --- a/sys/syscall_pagedir.c +++ b/sys/syscall_pagedir.c @@ -44,7 +44,8 @@ s_syscall_pagedir_map( return EALIGN; } if(untyped_data->limit != 0x1000) { - kprintf("%s: Untyped object is not page sized.\n", __func__); + kprintf("%s: Untyped object is not page sized. (expected 0x1000 got 0x%X)\n", __func__, + untyped_data->limit); obj_release(untyped_obj); return EBADSIZE; } @@ -104,6 +105,10 @@ s_syscall_pagedir_map_frame( struct syscall_pagedir_map *payload = payload_data; sysret = pagedir_map_untyped_frame(target_obj, untyped_obj, payload->virtual_address, payload->flags); + + if(sysret == 0) + obj_settype(untyped_obj, JOVE_OBJ_NONE); + obj_release(untyped_obj); return sysret; } @@ -122,7 +127,11 @@ s_syscall_pagedir_map_table( } struct syscall_pagedir_map *payload = payload_data; - sysret = pagedir_map_untyped_frame(target_obj, untyped_obj, payload->virtual_address, payload->flags); + sysret = pagedir_map_untyped_table(target_obj, untyped_obj, payload->virtual_address); + + if(sysret == 0) + obj_settype(untyped_obj, JOVE_OBJ_NONE); + obj_release(untyped_obj); return sysret; } -- cgit v1.2.3