Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6740c18 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Rafael J. Wysocki
Browse files

device property: avoid allocations of 0 length



Arrays can not have zero elements by definition of the unified device
properties. If such property comes from outside we should not allow it to pass.
Otherwise memory allocation on 0 length will return non-NULL value, which we
currently don't check.

Prevent memory allocations of 0 length.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 0fb5902f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -653,6 +653,9 @@ int fwnode_property_match_string(struct fwnode_handle *fwnode,
	if (nval < 0)
		return nval;

	if (nval == 0)
		return -ENODATA;

	values = kcalloc(nval, sizeof(*values), GFP_KERNEL);
	if (!values)
		return -ENOMEM;
@@ -718,6 +721,9 @@ static int pset_copy_entry(struct property_entry *dst,
		return -ENOMEM;

	if (src->is_array) {
		if (!src->length)
			return -ENODATA;

		if (src->is_string) {
			nval = src->length / sizeof(const char *);
			dst->pointer.str = kcalloc(nval, sizeof(const char *),