bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Delete rpc copyout multiname code


From: Samuel Thibault
Subject: Re: [PATCH] Delete rpc copyout multiname code
Date: Sun, 11 Dec 2022 09:04:12 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Flavio Cruz, le dim. 11 déc. 2022 01:51:50 -0500, a ecrit:
> ---
>  ipc/ipc_object.c | 56 ------------------------------------------------
>  ipc/ipc_right.c  | 35 ------------------------------
>  2 files changed, 91 deletions(-)
> 
> diff --git a/ipc/ipc_object.c b/ipc/ipc_object.c
> index ebe11492..3fd7f92b 100644
> --- a/ipc/ipc_object.c
> +++ b/ipc/ipc_object.c
> @@ -666,62 +666,6 @@ ipc_object_copyout(
>       return kr;
>  }
>  
> -#if 0
> -/* XXX same, but don't check for already-existing send rights */
> -kern_return_t
> -ipc_object_copyout_multiname(space, object, namep)
> -     ipc_space_t space;
> -     ipc_object_t object;
> -     mach_port_t *namep;
> -{
> -     mach_port_t name;
> -     ipc_entry_t entry;
> -     kern_return_t kr;
> -
> -     assert(IO_VALID(object));
> -     assert(io_otype(object) == IOT_PORT);
> -
> -     is_write_lock(space);
> -
> -     for (;;) {
> -             if (!space->is_active) {
> -                     is_write_unlock(space);
> -                     return KERN_INVALID_TASK;
> -             }
> -
> -             kr = ipc_entry_alloc(space, &name, &entry);
> -             if (kr != KERN_SUCCESS) {
> -                     is_write_unlock(space);
> -                     return kr; /* space is unlocked */
> -             }
> -
> -             assert(IE_BITS_TYPE(entry->ie_bits) == MACH_PORT_TYPE_NONE);
> -             assert(entry->ie_object == IO_NULL);
> -
> -             io_lock(object);
> -             if (!io_active(object)) {
> -                     io_unlock(object);
> -                     ipc_entry_dealloc(space, name, entry);
> -                     is_write_unlock(space);
> -                     return KERN_INVALID_CAPABILITY;
> -             }
> -
> -             entry->ie_object = object;
> -             break;
> -     }
> -
> -     /* space is write-locked and active, object is locked and active */
> -
> -     kr = ipc_right_copyout_multiname(space, name, entry, object);
> -     /* object is unlocked */
> -     is_write_unlock(space);
> -
> -     if (kr == KERN_SUCCESS)
> -             *namep = name;
> -     return kr;
> -}
> -#endif /* 0 */
> -
>  /*
>   *   Routine:        ipc_object_copyout_name
>   *   Purpose:
> diff --git a/ipc/ipc_right.c b/ipc/ipc_right.c
> index b62c9314..79f70c3d 100644
> --- a/ipc/ipc_right.c
> +++ b/ipc/ipc_right.c
> @@ -1978,41 +1978,6 @@ ipc_right_copyout(
>       return KERN_SUCCESS;
>  }
>  
> -#if 0
> -/*XXX same, but allows multiple duplicate send rights */
> -kern_return_t
> -ipc_right_copyout_multiname(space, name, entry, object)
> -     ipc_space_t space;
> -     mach_port_t name;
> -     ipc_entry_t entry;
> -     ipc_object_t object;
> -{
> -     ipc_entry_bits_t bits = entry->ie_bits;
> -     ipc_port_t port;
> -
> -     assert(IO_VALID(object));
> -     assert(io_otype(object) == IOT_PORT);
> -     assert(io_active(object));
> -     assert(entry->ie_object == object);
> -
> -     port = (ipc_port_t) object;
> -
> -     assert(port->ip_srights > 0);
> -
> -     assert(IE_BITS_TYPE(bits) == MACH_PORT_TYPE_NONE);
> -     assert(IE_BITS_UREFS(bits) == 0);
> -
> -     /* transfer send right and ref to entry */
> -     ip_unlock(port);
> -
> -     /* entry is locked holding ref, so can use port */
> -
> -     entry->ie_bits = (bits | MACH_PORT_TYPE_SEND) + 1;
> -
> -     return KERN_SUCCESS;
> -}
> -#endif
> -
>  /*
>   *   Routine:        ipc_right_rename
>   *   Purpose:
> -- 
> 2.37.2
> 
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]