With string type property entries we need to use
sizeof(const char *) instead of the number of characters as
the length of the entry.

If the string was shorter then sizeof(const char *),
attempts to read it would have failed with -EOVERFLOW. The
problem has been hidden because all build-in string
properties have had a string longer then 8 characters until
now.

Fixes: a85f42047533 ("device property: helper macros for property entry 
creation")
Cc: [email protected]
Signed-off-by: Heikki Krogerus <[email protected]>
---
 include/linux/property.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/property.h b/include/linux/property.h
index 3789ec755fb6..65d3420dd5d1 100644
--- a/include/linux/property.h
+++ b/include/linux/property.h
@@ -258,7 +258,7 @@ struct property_entry {
 #define PROPERTY_ENTRY_STRING(_name_, _val_)           \
 (struct property_entry) {                              \
        .name = _name_,                                 \
-       .length = sizeof(_val_),                        \
+       .length = sizeof(const char *),                 \
        .type = DEV_PROP_STRING,                        \
        { .value = { .str = _val_ } },                  \
 }
-- 
2.20.1

Reply via email to