Check length of provided address label
This commit is contained in:
parent
b4fbe1d34d
commit
0cf780859c
2 changed files with 8 additions and 3 deletions
|
@ -42,7 +42,7 @@ extern int rtnl_addr_delete(struct nl_handle *,
|
|||
extern char * rtnl_addr_flags2str(int, char *, size_t);
|
||||
extern int rtnl_addr_str2flags(const char *);
|
||||
|
||||
extern void rtnl_addr_set_label(struct rtnl_addr *, const char *);
|
||||
extern int rtnl_addr_set_label(struct rtnl_addr *, const char *);
|
||||
extern char * rtnl_addr_get_label(struct rtnl_addr *);
|
||||
|
||||
extern void rtnl_addr_set_ifindex(struct rtnl_addr *, int);
|
||||
|
|
|
@ -850,10 +850,15 @@ int rtnl_addr_delete(struct nl_handle *handle, struct rtnl_addr *addr,
|
|||
* @{
|
||||
*/
|
||||
|
||||
void rtnl_addr_set_label(struct rtnl_addr *addr, const char *label)
|
||||
int rtnl_addr_set_label(struct rtnl_addr *addr, const char *label)
|
||||
{
|
||||
strncpy(addr->a_label, label, sizeof(addr->a_label) - 1);
|
||||
if (strlen(label) > sizeof(addr->a_label) - 1)
|
||||
return -NLE_RANGE;
|
||||
|
||||
strcpy(addr->a_label, label);
|
||||
addr->ce_mask |= ADDR_ATTR_LABEL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *rtnl_addr_get_label(struct rtnl_addr *addr)
|
||||
|
|
Loading…
Add table
Reference in a new issue