greybus: manifest: Disallow reuse of control cport
authorViresh Kumar <viresh.kumar@linaro.org>
Sat, 11 Jun 2016 02:31:01 +0000 (08:01 +0530)
committerGreg Kroah-Hartman <gregkh@google.com>
Thu, 16 Jun 2016 06:57:20 +0000 (23:57 -0700)
We should be checking if any of the bundles contains a CPort with its id
set to the special value of '0', which is reserved for control CPort.

Discard the bundle in that case.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/manifest.c

index 529a984..3d1592f 100644 (file)
@@ -250,6 +250,13 @@ static u32 gb_manifest_parse_cports(struct gb_bundle *bundle)
                if (cport_id > CPORT_ID_MAX)
                        goto exit;
 
+               /* Nothing else should have its cport_id as control cport id */
+               if (cport_id == GB_CONTROL_CPORT_ID) {
+                       dev_err(&bundle->dev, "invalid cport id found (%02u)\n",
+                               cport_id);
+                       goto exit;
+               }
+
                /*
                 * Found one, move it to our temporary list after checking for
                 * duplicates.