BRCTL_SET_BRIDGE_STP_STATE,
stp_state, 0, 0 };
- if (NULL == bridge_name || strlen(bridge_name) > IFNAMSIZ) {
+ if (NULL == bridge_name || strlen(bridge_name) > IFNAMSIZ - 1) {
WMESH_LOGE("Invalid parameter [%p]", bridge_name);
return WMESHD_ERROR_INVALID_PARAMETER;
}
return WMESHD_ERROR_IO_ERROR;
}
- strncpy(ifr.ifr_name, bridge_name, IFNAMSIZ);
+ snprintf(ifr.ifr_name, IFNAMSIZ, "%s", bridge_name);
ifr.ifr_data = (char *)arg;
val = ioctl(br_fd, SIOCDEVPRIVATE, &ifr);