On 06/20/2014 06:50 PM, Djalal Harouni wrote:
> kdbus_policy_check_own_access() returns 0 if access is granted,
> otherwise a negative errno.
> 
> So fix this by returning 0. We did not hit this since callers were
> checking negative values for errors.

Applied, thanks.


Daniel


> Signed-off-by: Djalal Harouni <tix...@opendz.org>
> ---
>  policy.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/policy.c b/policy.c
> index d75c2ef..58ab6a5 100644
> --- a/policy.c
> +++ b/policy.c
> @@ -231,7 +231,7 @@ static int kdbus_policy_check_access(const struct 
> kdbus_policy_db_entry *e,
>   * @conn:    The connection to check
>   * @name:    The name to check
>   *
> - * Return: t0 if the connection is allowed to own the name, -EPERM otherwise
> + * Return: 0 if the connection is allowed to own the name, -EPERM otherwise
>   */
>  int kdbus_policy_check_own_access(struct kdbus_policy_db *db,
>                                 const struct kdbus_conn *conn,
> @@ -307,8 +307,17 @@ int kdbus_policy_check_talk_access(struct 
> kdbus_policy_db *db,
>       unsigned int hash = 0;
>       int ret;
>  
> +     /*
> +      * user->uid maps to a fsuid at the time of a KDBUS_CMD_HELLO
> +      * cmd, if they equal allow the TALK access, otherwise we
> +      * proceed and perform checks against current's cred.
> +      *
> +      * By using the user->uid check first we reduce the exposure to
> +      * creds changes. Privileged processes should be careful about
> +      * what to do with a file descriptor.
> +      */
>       if (uid_eq(conn_src->user->uid, conn_dst->user->uid))
> -             return true;
> +             return 0;
>  
>       /*
>        * If there was a positive match for these two connections before,
> 

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to