--- l2tpd-0.70-pre20031121.oorig/avpsend.c 2006-12-28 16:00:26.000000000 +0100 +++ l2tpd-0.70-pre20031121/avpsend.c 2006-12-28 16:21:06.000000000 +0100 @@ -98,19 +98,26 @@ int add_hostname_avp(struct buffer *buf, int sz = 0; if(t->lac && t->lac->hostname[0]) { strncpy(n,t->lac->hostname, sizeof(n)); - sz = strnlen(t->lac->hostname, sizeof(t->lac->hostname)); + sz = strlen(t->lac->hostname); + if (sz > sizeof(t->lac->hostname)) + sz = sizeof(t->lac->hostname); } else if(t->lns && t->lns->hostname[0]) { strncpy(n,t->lns->hostname, sizeof(n)); - sz = strnlen(t->lns->hostname, sizeof(t->lns->hostname)); + sz = strlen(t->lns->hostname); + if (sz > sizeof(t->lns->hostname)) + sz = sizeof(t->lns->hostname); } else { if(gethostname(n, STRLEN)) { strcpy(n,"eriwan"); sz = 6; } - else - sz = strnlen(n, sizeof(n)); + else { + sz = strlen(n); + if (sz > sizeof(n)) + sz = sizeof(n); + } } if(add_avp(buf, HOSTNAME_AVP, n, sz, 1)) return 1;