mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
xen/dt: of_property_read_string return -ENODATA when !length
When the length of the string is zero of_property_read_string should return -ENODATA according to the description of the function. However, of_property_read_string doesn't check prop->length. If prop->length is zero, return -ENODATA. Without this patch the following command in u-boot: fdt set /chosen/node property-name results in of_property_read_string returning -EILSEQ when attempting to read property-name. With this patch, it returns -ENODATA as expected. This commit is a backport of: https://lore.kernel.org/xen-devel/20220416003028.1315268-1-sstabellini@kernel.org/ Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
This commit is contained in:
1 parent
ec0cce125b
commit
d43d2b6056
2 files changed
+4
-1
No files matched your search
@@ -198,7 +198,7 @@ int dt_property_read_string(const struct dt_device_node *np,
|
||||
|
||||
if ( !pp )
|
||||
return -EINVAL;
|
||||
if ( !pp->value )
|
||||
if ( !pp->length )
|
||||
return -ENODATA;
|
||||
if ( strnlen(pp->value, pp->length) >= pp->length )
|
||||
return -EILSEQ;
|
||||
|
||||
@@ -451,6 +451,9 @@ static inline bool_t dt_property_read_bool(const struct dt_device_node *np,
|
||||
* doest not have value, and -EILSEQ if the string is not
|
||||
* null-terminated with the length of the property data.
|
||||
*
|
||||
* Note that the empty string "" has length of 1, thus -ENODATA cannot
|
||||
* be interpreted as an empty string.
|
||||
*
|
||||
* The out_string pointer is modified only if a valid string can be decoded.
|
||||
*/
|
||||
int dt_property_read_string(const struct dt_device_node *np,
|
||||
|
||||