diff options
Diffstat (limited to 'components')
| -rw-r--r-- | components/drivers/wlan/wlan_dev.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/components/drivers/wlan/wlan_dev.c b/components/drivers/wlan/wlan_dev.c index 3c26531508..a42072692c 100644 --- a/components/drivers/wlan/wlan_dev.c +++ b/components/drivers/wlan/wlan_dev.c @@ -117,7 +117,18 @@ int rt_wlan_softap(struct rt_wlan_device *device, struct rt_wlan_info *info, cha rt_wlan_set_info(device, info); } - rt_strncpy((char *)device->key, (char *)password, sizeof(device->key) - 1); + if (password == NULL) + { + memset(device->key, 0, sizeof(device->key)); + } + else + { + if (rt_strlen(password) > sizeof(device->key) - 1) + { + rt_kprintf("WARN input password is longer than %d bytes.", sizeof(device->key) - 1); + } + rt_strncpy((char *)device->key, (char *)password, sizeof(device->key) - 1); + } result = rt_device_control(RT_DEVICE(device), WIFI_SOFTAP, (void *)password); |
