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);
* @{
*/
-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)