34 lines
1000 B
Diff
34 lines
1000 B
Diff
|
--- 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;
|