summaryrefslogtreecommitdiffstats
path: root/net/tipc/link.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r--net/tipc/link.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 4aa56e3bf4fc..bcd76b1e440c 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -442,6 +442,7 @@ bool tipc_link_create(struct net *net, char *if_name, int bearer_id,
442 struct sk_buff_head *namedq, 442 struct sk_buff_head *namedq,
443 struct tipc_link **link) 443 struct tipc_link **link)
444{ 444{
445 char *self_str = tipc_own_id_string(net);
445 struct tipc_link *l; 446 struct tipc_link *l;
446 447
447 l = kzalloc(sizeof(*l), GFP_ATOMIC); 448 l = kzalloc(sizeof(*l), GFP_ATOMIC);
@@ -451,7 +452,10 @@ bool tipc_link_create(struct net *net, char *if_name, int bearer_id,
451 l->session = session; 452 l->session = session;
452 453
453 /* Note: peer i/f name is completed by reset/activate message */ 454 /* Note: peer i/f name is completed by reset/activate message */
454 sprintf(l->name, "%x:%s-%x:unknown", self, if_name, peer); 455 if (strlen(self_str) > 16)
456 sprintf(l->name, "%x:%s-%x:unknown", self, if_name, peer);
457 else
458 sprintf(l->name, "%s:%s-%x:unknown", self_str, if_name, peer);
455 strcpy(l->if_name, if_name); 459 strcpy(l->if_name, if_name);
456 l->addr = peer; 460 l->addr = peer;
457 l->peer_caps = peer_caps; 461 l->peer_caps = peer_caps;