Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Unified Diff: src/trusted/service_runtime/name_service/name_service.c

Issue 7108031: this patch adds the manifest proxy server to sel_ldr and the manifest (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/trusted/service_runtime/name_service/name_service.c
===================================================================
--- src/trusted/service_runtime/name_service/name_service.c (revision 5616)
+++ src/trusted/service_runtime/name_service/name_service.c (working copy)
@@ -128,6 +128,10 @@
struct NaClNameServiceEntry *found = NULL;
char *dup_name = STRDUP(name);
+ NaClLog(3,
+ "NaClNameServiceCreateDescEntry: entering %s, %d (0x%x)\n",
+ name,
+ mode, mode);
/*
* common case is insertion success, so we pre-allocate memory
* (strdup, malloc) to avoid doing memory allocations while holding
@@ -151,7 +155,7 @@
name_entry->name = dup_name;
dup_name = (char *) NULL;
name_entry->mode = mode;
- name_entry->entry = NaClDescRef(new_desc);
+ name_entry->entry = new_desc;
name_entry->factory = (NaClNameServiceFactoryFn_t) NULL;
name_entry->state = (void *) NULL;
nnsp->head = name_entry;
@@ -177,6 +181,12 @@
struct NaClNameServiceEntry *found = NULL;
char *dup_name = STRDUP(name);
+ NaClLog(3,
+ ("NaClNameServiceCreateFactoryEntry: entering %s,"
+ " 0x%"NACL_PRIxPTR", 0x%"NACL_PRIxPTR"\n"),
+ name,
+ (uintptr_t) factory_fn,
+ (uintptr_t) factory_state);
/*
* common case is insertion success, so we pre-allocate memory
* (strdup, malloc) to avoid doing memory allocation while holding
@@ -222,7 +232,12 @@
struct NaClNameServiceEntry *nnsep;
int status = NACL_NAME_SERVICE_NAME_NOT_FOUND;
- if (0 != (flags & NACL_ABI_O_ACCMODE)) {
+ NaClLog(3,
+ "NaClNameServiceResolveName: looking up %s, flags %d (0x%x)\n",
+ name,
+ flags, flags);
+ if (0 != (flags & ~NACL_ABI_O_ACCMODE)) {
+ NaClLog(2, "NaClNameServiceResolveName: bad flags!\n");
status = NACL_NAME_SERVICE_PERMISSION_DENIED;
goto quit;
}
@@ -231,30 +246,47 @@
nnsep = *NameServiceSearch(&nnsp->head, name);
if (NULL != nnsep) {
if (NULL != nnsep->entry) {
+ NaClLog(3,
+ "NaClNameServiceResolveName: found %s, mode %d (0x%x)\n",
+ name,
+ nnsep->mode, nnsep->mode);
/* check flags against nnsep->mode */
+ NaClLog(4,
+ ("NaClNameServiceResolveName: checking mode/flags"
+ " compatibility\n"));
switch (flags) {
case NACL_ABI_O_RDONLY:
if (NACL_ABI_O_WRONLY == nnsep->mode) {
status = NACL_NAME_SERVICE_PERMISSION_DENIED;
+ NaClLog(4,
+ "NaClNameServiceResolveName: incompatible,"
+ " not readable\n");
goto unlock_and_quit;
}
break;
case NACL_ABI_O_WRONLY:
if (NACL_ABI_O_RDONLY == nnsep->mode) {
status = NACL_NAME_SERVICE_PERMISSION_DENIED;
+ NaClLog(4,
+ "NaClNameServiceResolveName: incompatible,"
+ " not writeable\n");
goto unlock_and_quit;
}
break;
case NACL_ABI_O_RDWR:
if (NACL_ABI_O_RDWR != nnsep->mode) {
status = NACL_NAME_SERVICE_PERMISSION_DENIED;
+ NaClLog(4, "NaClNameServiceResolveName: incompatible,"
+ " not for both read and write\n");
goto unlock_and_quit;
}
break;
default:
status = NACL_NAME_SERVICE_INVALID_ARGUMENT;
+ NaClLog(4, "NaClNameServiceResolveName: invalid flag\n");
goto unlock_and_quit;
}
+ NaClLog(4, "NaClNameServiceResolveName: mode and flags are compatible\n");
*out = NaClDescRef(nnsep->entry);
status = NACL_NAME_SERVICE_SUCCESS;
} else {
@@ -334,6 +366,10 @@
int mode = in_args[1]->u.ival;
struct NaClDesc *desc = in_args[2]->u.hval;
+ NaClLog(3,
+ "NaClNameServiceNameInsertRpc: inserting %s, %d (0x%x)\n",
+ name,
+ mode, mode);
out_args[0]->u.ival = (*NACL_VTBL(NaClNameService, nnsp)->CreateDescEntry)(
nnsp, name, mode, desc);
rpc->result = NACL_SRPC_RESULT_OK;
@@ -353,6 +389,7 @@
NaClLog(LOG_WARNING,
"NaClNameServiceNameLookupOldRpc: DEPRECATED interface used.\n");
+ NaClLog(3, "NaClNameServiceNameLookupOldRpc: looking up %s\n", name);
status = (*NACL_VTBL(NaClNameService, nnsp)->ResolveName)(
nnsp, name, NACL_ABI_O_RDONLY, &desc);
out_args[0]->u.ival = status;
@@ -375,12 +412,17 @@
int status;
struct NaClDesc *desc;
+ NaClLog(3, "NaClNameServiceNameLookupRpc: looking up %s\n", name);
+ NaClLog(3, "NaClNameServiceNameLookupRpc: flags %d (0x%x)\n", flags, flags);
status = (*NACL_VTBL(NaClNameService, nnsp)->ResolveName)(
nnsp, name, flags, &desc);
out_args[0]->u.ival = status;
out_args[1]->u.hval = (NACL_NAME_SERVICE_SUCCESS == status)
? desc
: (struct NaClDesc *) NaClDescInvalidMake();
+ NaClLog(3, "NaClNameServiceNameLookupRpc: status %d\n", status);
+ NaClLog(3, "NaClNameServiceNameLookupRpc: desc 0x%"NACL_PRIxPTR"\n",
+ (uintptr_t) desc);
rpc->result = NACL_SRPC_RESULT_OK;
(*done_cls->Run)(done_cls);
}

Powered by Google App Engine
This is Rietveld 408576698