NameServer: fix Linux-requested remote ns lookups
authorChris Ring <cring@ti.com>
Wed, 4 Sep 2013 22:01:14 +0000 (15:01 -0700)
committerChris Ring <cring@ti.com>
Wed, 4 Sep 2013 22:24:08 +0000 (15:24 -0700)
BIOS-side NameServerRemoteRpmsg.c was recently taught to
support NameServer lookups larger than 32 bits.  Prior to
that education, it assumed all requestors were asking for
only 32 bits of NameServer data.

Linux must now indicate how big its NameServer buffer is
so the BIOS-side knows how to fill it.  When this > 32-bit
lookup support was added, QNX was correctly modified; Linux
was overlooked.

For users, this commit fixes Linux NameServer lookups (which
most users see as MessageQ_open() calls) which have been broken
since 82e4969d635d0f6cbee3c6fcc3df3a7be39bc852.  Tag-wise,
this Linux-only bug was introduced in the 3.10.00.06_eng build.

linux/src/daemon/NameServer_daemon.c

index 70742765d97d434c1ce51265573d1b732dd4e904..f7104eac8698446e218dec5e900e08611ae859e9 100644 (file)
@@ -961,6 +961,7 @@ Int NameServer_getRemote(NameServer_Handle handle,
     nsMsg.reserved = NAMESERVER_MSG_TOKEN;
     nsMsg.request = NAMESERVER_REQUEST;
     nsMsg.requestStatus = 0;
+    nsMsg.valueLen = *len;
 
     strncpy((char *)nsMsg.instanceName, obj->name, strlen(obj->name) + 1);
     strncpy((char *)nsMsg.name, name, strlen(name) + 1);