]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
of: unittest: for strings, account for trailing \0 in property length field
authorStefan M Schaeckeler <sschaeck@cisco.com>
Mon, 21 May 2018 23:26:14 +0000 (16:26 -0700)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 14 Jan 2019 09:28:55 +0000 (09:28 +0000)
BugLink: http://bugs.launchpad.net/bugs/1807469
commit 3b9cf7905fe3ab35ab437b5072c883e609d3498d upstream.

For strings, account for trailing \0 in property length field:

This is consistent with how dtc builds string properties.

Function __of_prop_dup() would misbehave on such properties as it duplicates
properties based on the property length field creating new string values
without trailing \0s.

Signed-off-by: Stefan M Schaeckeler <sschaeck@cisco.com>
Reviewed-by: Frank Rowand <frank.rowand@sony.com>
Tested-by: Frank Rowand <frank.rowand@sony.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/of/unittest.c

index 0f8052f1355c0c09ac99a43335ab67927cdac52b..b75fa3b688a2097e382c0fc16656c52710c6358c 100644 (file)
@@ -164,20 +164,20 @@ static void __init of_unittest_dynamic(void)
        /* Add a new property - should pass*/
        prop->name = "new-property";
        prop->value = "new-property-data";
-       prop->length = strlen(prop->value);
+       prop->length = strlen(prop->value) + 1;
        unittest(of_add_property(np, prop) == 0, "Adding a new property failed\n");
 
        /* Try to add an existing property - should fail */
        prop++;
        prop->name = "new-property";
        prop->value = "new-property-data-should-fail";
-       prop->length = strlen(prop->value);
+       prop->length = strlen(prop->value) + 1;
        unittest(of_add_property(np, prop) != 0,
                 "Adding an existing property should have failed\n");
 
        /* Try to modify an existing property - should pass */
        prop->value = "modify-property-data-should-pass";
-       prop->length = strlen(prop->value);
+       prop->length = strlen(prop->value) + 1;
        unittest(of_update_property(np, prop) == 0,
                 "Updating an existing property should have passed\n");
 
@@ -185,7 +185,7 @@ static void __init of_unittest_dynamic(void)
        prop++;
        prop->name = "modify-property";
        prop->value = "modify-missing-property-data-should-pass";
-       prop->length = strlen(prop->value);
+       prop->length = strlen(prop->value) + 1;
        unittest(of_update_property(np, prop) == 0,
                 "Updating a missing property should have passed\n");