summaryrefslogtreecommitdiff
path: root/viengoos/server.c
diff options
context:
space:
mode:
authorneal <neal>2008-06-22 09:22:04 +0000
committerneal <neal>2008-06-22 09:22:04 +0000
commit706219de809115933420aadee8ea8930096590b8 (patch)
tree6b12620fad4413e3b1ab9f5548b305a6e2b57dae /viengoos/server.c
parent61edfb886d649a07416a89b4294be738cdb4d061 (diff)
2008-06-22 Neal H. Walfield <neal@gnu.org>
* server.c (server_loop): In the implementation of object_discarded_clear, if CAP.TYPE is void, directly return ENOENT.
Diffstat (limited to 'viengoos/server.c')
-rw-r--r--viengoos/server.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/viengoos/server.c b/viengoos/server.c
index 91cd939..797108a 100644
--- a/viengoos/server.c
+++ b/viengoos/server.c
@@ -1054,6 +1054,8 @@ server_loop (void)
returns NULL if the object's discardable bit is
set! Instead, we lookup the capability. */
struct cap cap = CAP (&thread->aspace, object_addr, -1, true);
+ if (cap.type == cap_void)
+ REPLY (ENOENT);
int idx = (cap.oid % (1 + FOLIO_OBJECTS)) - 1;
oid_t foid = cap.oid - idx - 1;