[PATCH 3.16 075/366] of: unittest: for strings, account for trailing \\0 in property length field

From: Ben Hutchings
Date: Sun Nov 11 2018 - 15:04:12 EST


3.16.61-rc1 review patch. If anyone has any objections, please let me know.

------------------

From: Stefan M Schaeckeler <sschaeck@xxxxxxxxx>

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@xxxxxxxxx>
Reviewed-by: Frank Rowand <frank.rowand@xxxxxxxx>
Tested-by: Frank Rowand <frank.rowand@xxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
[bwh: Backported to 3.16: s/unittest/selftest/]
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
drivers/of/selftest.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/of/selftest.c
+++ b/drivers/of/selftest.c
@@ -97,20 +97,20 @@ static void __init of_selftest_dynamic(v
/* 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;
selftest(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;
selftest(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;
selftest(of_update_property(np, prop) == 0,
"Updating an existing property should have passed\n");

@@ -118,7 +118,7 @@ static void __init of_selftest_dynamic(v
prop++;
prop->name = "modify-property";
prop->value = "modify-missing-property-data-should-pass";
- prop->length = strlen(prop->value);
+ prop->length = strlen(prop->value) + 1;
selftest(of_update_property(np, prop) == 0,
"Updating a missing property should have passed\n");