Linux: GateMP: Check for Proper NameServer Value Length
authorAngela Stegmaier <angelabaker@ti.com>
Tue, 10 May 2016 16:28:00 +0000 (11:28 -0500)
committerAngela Stegmaier <angelabaker@ti.com>
Thu, 12 May 2016 17:34:36 +0000 (12:34 -0500)
After getting the NameServer value for _GateMP_TI_dGate, check
to make sure that the length is equal to the expected value.
This is to prevent using some uninitialized values to configure
the GateMP. Indirectly, this can help check if hostSupport
has been enabled on the remote processor or not, because
currently, only if hostSupport has been enabled are there 4
entries. Otherwise there are only 2 entries.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
linux/src/api/gates/GateMP.c
linux/src/daemon/GateMP_daemon.c

index e71629dd1dbfec212fe47dcd7df062a268bdd36f..9a0024fc45fde665df8a68f884d8961e7b3330d6 100644 (file)
@@ -390,6 +390,12 @@ Int GateMP_open(String name, GateMP_Handle *handle)
             *handle = NULL;
             status = GateMP_E_NOTFOUND;
         }
+        else if (len != sizeof(nsValue)) {
+            *handle = NULL;
+            status = GateMP_E_NOTFOUND;
+            PRINTVERBOSE0("GateMP configuration not valid for hostSupport. "
+                "Try adding hostSupport to your config if it is needed.\n");
+        }
         else {
             arg = nsValue[2];
             mask = nsValue[3];
index a7b92103cc5dc390f3926976167b3297a483e853..56b2ad6dd741eddc75342b9d085e0d94570e9a40 100644 (file)
@@ -513,6 +513,12 @@ static Int GateMP_openDefaultGate(GateMP_Handle *handlePtr, UInt16 procId[])
             *handlePtr = NULL;
             status = GateMP_E_NOTFOUND;
         }
+        else if (len != sizeof(nsValue)) {
+            *handlePtr = NULL;
+            status = GateMP_E_NOTFOUND;
+            LOG0("GateMP configuration not valid for hostSupport. "
+                 "Try adding hostSupport to your config if it is needed.\n");
+        }
         else {
             arg = nsValue[2];
             mask = nsValue[3];