roboswitch: Check some read operation results
This gets rid of some static analyzer warnings about uninitialized variables being used in comparisons or write operations. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
9571f945c6
commit
ca9efe113c
1 changed files with 22 additions and 14 deletions
|
@ -290,21 +290,26 @@ static int wpa_driver_roboswitch_leave(struct wpa_driver_roboswitch_data *drv,
|
||||||
|
|
||||||
wpa_driver_roboswitch_addr_be16(addr, addr_be16);
|
wpa_driver_roboswitch_addr_be16(addr, addr_be16);
|
||||||
|
|
||||||
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE, ROBO_ARLCTRL_CONF,
|
if (wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
||||||
&_read, 1);
|
ROBO_ARLCTRL_CONF, &_read, 1) < 0)
|
||||||
|
return -1;
|
||||||
/* If ARL control is disabled, there is nothing to leave. */
|
/* If ARL control is disabled, there is nothing to leave. */
|
||||||
if (!(_read & (1 << 4))) return -1;
|
if (!(_read & (1 << 4))) return -1;
|
||||||
|
|
||||||
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
if (wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
||||||
ROBO_ARLCTRL_ADDR_1, addr_read, 3);
|
ROBO_ARLCTRL_ADDR_1, addr_read, 3) < 0 ||
|
||||||
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE, ROBO_ARLCTRL_VEC_1,
|
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
||||||
&ports_read, 1);
|
ROBO_ARLCTRL_VEC_1, &ports_read, 1) < 0)
|
||||||
|
return -1;
|
||||||
/* check if we occupy multiport address 1 */
|
/* check if we occupy multiport address 1 */
|
||||||
if (os_memcmp(addr_read, addr_be16, 6) == 0 && ports_read == ports) {
|
if (os_memcmp(addr_read, addr_be16, 6) == 0 && ports_read == ports) {
|
||||||
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
if (wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
||||||
ROBO_ARLCTRL_ADDR_2, addr_read, 3);
|
ROBO_ARLCTRL_ADDR_2, addr_read,
|
||||||
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
3) < 0 ||
|
||||||
ROBO_ARLCTRL_VEC_2, &ports_read, 1);
|
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
||||||
|
ROBO_ARLCTRL_VEC_2, &ports_read,
|
||||||
|
1) < 0)
|
||||||
|
return -1;
|
||||||
/* and multiport address 2 */
|
/* and multiport address 2 */
|
||||||
if (os_memcmp(addr_read, addr_be16, 6) == 0 &&
|
if (os_memcmp(addr_read, addr_be16, 6) == 0 &&
|
||||||
ports_read == ports) {
|
ports_read == ports) {
|
||||||
|
@ -327,10 +332,13 @@ static int wpa_driver_roboswitch_leave(struct wpa_driver_roboswitch_data *drv,
|
||||||
&ports_read, 1);
|
&ports_read, 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
if (wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
||||||
ROBO_ARLCTRL_ADDR_2, addr_read, 3);
|
ROBO_ARLCTRL_ADDR_2, addr_read,
|
||||||
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
3) < 0 ||
|
||||||
ROBO_ARLCTRL_VEC_2, &ports_read, 1);
|
wpa_driver_roboswitch_read(drv, ROBO_ARLCTRL_PAGE,
|
||||||
|
ROBO_ARLCTRL_VEC_2, &ports_read,
|
||||||
|
1) < 0)
|
||||||
|
return -1;
|
||||||
/* or multiport address 2 */
|
/* or multiport address 2 */
|
||||||
if (os_memcmp(addr_read, addr_be16, 6) == 0 &&
|
if (os_memcmp(addr_read, addr_be16, 6) == 0 &&
|
||||||
ports_read == ports) {
|
ports_read == ports) {
|
||||||
|
|
Loading…
Reference in a new issue