Hello,

Maximus Minter, le mar. 07 avril 2026 22:30:33 -0400, a ecrit:
> - Fix memory leak in gsync_wake

> diff --git a/kern/gsync.c b/kern/gsync.c
> index 656e47dd..ee058657 100644
> --- a/kern/gsync.c
> +++ b/kern/gsync.c
> @@ -410,6 +410,7 @@ kern_return_t gsync_wake (task_t task,
>            addr = paddr + (addr & (PAGE_SIZE - 1));
>            *(unsigned int *)addr = val;
>            vm_map_remove (kernel_map, addr, addr + sizeof (int));
> +          vm_object_deallocate (va.obj);   /* release the extra reference */
>          }
>        else if (copyout (&val, (void *) addr, 4))
>          {

Have you checked that this code is actually reached in your tests?

See the same code in gsync_wait:

      /* Note that the call to 'vm_map_remove' will unreference
       * the VM object, so we don't have to do it ourselves. */
      vm_map_remove (kernel_map, paddr, paddr + PAGE_SIZE);
    }

Samuel

Reply via email to