Source-Changes-HG archive

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

[src/trunk]: src/sys/compat/mach Fix plain bugs that prevented insert_right a...



details:   https://anonhg.NetBSD.org/src/rev/918fa871e246
branches:  trunk
changeset: 540691:918fa871e246
user:      manu <manu%NetBSD.org@localhost>
date:      Sat Dec 21 23:50:00 2002 +0000

description:
Fix plain bugs that prevented insert_right and move_member from working correctly.

diffstat:

 sys/compat/mach/mach_port.c |  22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diffs (79 lines):

diff -r 3f2c0ec26893 -r 918fa871e246 sys/compat/mach/mach_port.c
--- a/sys/compat/mach/mach_port.c       Sat Dec 21 23:48:47 2002 +0000
+++ b/sys/compat/mach/mach_port.c       Sat Dec 21 23:50:00 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mach_port.c,v 1.18 2002/12/19 22:23:07 manu Exp $ */
+/*     $NetBSD: mach_port.c,v 1.19 2002/12/21 23:50:00 manu Exp $ */
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mach_port.c,v 1.18 2002/12/19 22:23:07 manu Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mach_port.c,v 1.19 2002/12/21 23:50:00 manu Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -181,7 +181,7 @@
                break;
 
        default:
-               uprintf("mach_port_allocate: unknown right %d\n", 
+               uprintf("mach_port_allocate: unknown right %x\n", 
                    req->req_right);
                break;
        }
@@ -227,15 +227,15 @@
                
        tp = tmr->mr_p; /* The target process */
 
-       switch (req->req_poly.name) {
+       switch (req->req_poly.disposition) {
        case MACH_MSG_TYPE_MAKE_SEND:
        case MACH_MSG_TYPE_MOVE_SEND:
        case MACH_MSG_TYPE_COPY_SEND:
                /* 
-                * XXX We require that requester has send right. 
+                * XXX We require that requester has any right. 
                 * Not sure this is right
                 */
-               if (mach_right_check(mr, p, MACH_PORT_TYPE_SEND) == 0)
+               if (mach_right_check(mr, p, MACH_PORT_TYPE_PORT_RIGHTS) == 0)
                        return mach_msg_error(args, EPERM);
                nmr = mach_right_get(mr->mr_port, tp, MACH_PORT_RIGHT_SEND);
                break;
@@ -243,10 +243,10 @@
        case MACH_MSG_TYPE_MAKE_SEND_ONCE:
        case MACH_MSG_TYPE_MOVE_SEND_ONCE:
                /* 
-                * XXX We require that requester has send right. 
+                * XXX We require that requester has any right. 
                 * Not sure this is right
                 */
-               if (mach_right_check(mr, p, MACH_PORT_TYPE_SEND_ONCE) == 0)
+               if (mach_right_check(mr, p, MACH_PORT_TYPE_PORT_RIGHTS) == 0)
                        return mach_msg_error(args, EPERM);
                nmr = mach_right_get(mr->mr_port, 
                    tp, MACH_PORT_RIGHT_SEND_ONCE);
@@ -263,8 +263,8 @@
                break;
 
        default:
-               uprintf("mach_port_insert_right: unknown right %d\n",
-                   req->req_poly.name);
+               uprintf("mach_port_insert_right: unknown right %x\n",
+                   req->req_poly.disposition);
                break;
        }
 
@@ -461,7 +461,7 @@
                lockmgr(&mach_right_list_lock, LK_EXCLUSIVE, NULL);
                LIST_FOREACH(mr, &med->med_right, mr_list) 
                        if ((mr->mr_port == mp) &&
-                           (mr->mr_type = type))
+                           (mr->mr_type == type))
                                break;
                lockmgr(&mach_right_list_lock, LK_RELEASE, NULL);
 



Home | Main Index | Thread Index | Old Index