diff options
| author | sheltonyu <[email protected]> | 2021-04-13 11:37:46 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-04-13 11:37:46 +0800 |
| commit | 46c5ba9225702bf473646ec2f4200c9560e2db90 (patch) | |
| tree | a7fe59ac9ce9a6a1c90d9c81324a4a6bb91b38a4 /components/net/netdev/src/netdev.c | |
| parent | 35ef1f9e0fcf1ae881a83558dbf7334ab08c598e (diff) | |
| parent | c44e5165bef5b7b069eb99a4f027454f417a726b (diff) | |
Merge branch 'master' into developer
Diffstat (limited to 'components/net/netdev/src/netdev.c')
| -rw-r--r-- | components/net/netdev/src/netdev.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index 76a937cc75..3f7aa401c1 100644 --- a/components/net/netdev/src/netdev.c +++ b/components/net/netdev/src/netdev.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2019, RT-Thread Development Team + * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -77,6 +77,14 @@ int netdev_register(struct netdev *netdev, const char *name, void *user_data) netdev->status_callback = RT_NULL; netdev->addr_callback = RT_NULL; + if(rt_strlen(name) > RT_NAME_MAX) + { + char netdev_name[RT_NAME_MAX + 1] = {0}; + + rt_strncpy(netdev_name, name, RT_NAME_MAX); + LOG_E("netdev name[%s] length is so long that have been cut into [%s].", name, netdev_name); + } + /* fill network interface device */ rt_strncpy(netdev->name, name, RT_NAME_MAX); netdev->user_data = user_data; @@ -260,7 +268,7 @@ struct netdev *netdev_get_by_name(const char *name) for (node = &(netdev_list->list); node; node = rt_slist_next(node)) { netdev = rt_slist_entry(node, struct netdev, list); - if (netdev && (rt_strncmp(netdev->name, name, RT_NAME_MAX) == 0)) + if (netdev && (rt_strncmp(netdev->name, name, rt_strlen(netdev->name) < RT_NAME_MAX ? rt_strlen(netdev->name) : RT_NAME_MAX) == 0)) { rt_hw_interrupt_enable(level); return netdev; |
