66
77#define DT_DRV_COMPAT zephyr_devmux
88
9+ #include <limits.h>
10+
911#include <zephyr/device.h>
1012#include <zephyr/drivers/misc/devmux/devmux.h>
1113#include <zephyr/kernel.h>
@@ -72,9 +74,9 @@ struct devmux_data *devmux_data_get(const struct device *dev)
7274 return NULL ;
7375}
7476
75- ssize_t z_impl_devmux_select_get (const struct device * dev )
77+ int z_impl_devmux_select_get (const struct device * dev )
7678{
77- ssize_t index ;
79+ int index ;
7880 struct devmux_data * const data = devmux_data_get (dev );
7981
8082 if (!devmux_device_is_valid (dev )) {
@@ -90,7 +92,7 @@ ssize_t z_impl_devmux_select_get(const struct device *dev)
9092}
9193
9294#ifdef CONFIG_USERSPACE
93- ssize_t z_vrfy_devmux_select_get (const struct device * dev )
95+ int z_vrfy_devmux_select_get (const struct device * dev )
9496{
9597 return z_impl_devmux_select_get (dev );
9698}
@@ -158,6 +160,8 @@ static int devmux_init(struct device *const dev)
158160 BUILD_ASSERT(DT_INST_PROP_OR(_n, zephyr_mutable, 0), \
159161 "devmux nodes must contain the 'zephyr,mutable' property"); \
160162 BUILD_ASSERT(DT_INST_PROP_LEN(_n, devices) > 0, "devices array must have non-zero size"); \
163+ BUILD_ASSERT(DT_INST_PROP_LEN(_n, devices) <= INT_MAX, \
164+ "devices array must be less than INT_MAX"); \
161165 BUILD_ASSERT(DEVMUX_SELECTED(_n) >= 0, "selected must be > 0"); \
162166 BUILD_ASSERT(DEVMUX_SELECTED(_n) < DT_INST_PROP_LEN(_n, devices), \
163167 "selected must be within bounds of devices phandle array"); \
0 commit comments