Fix use of snprintf() in IETF attributes to string conversion
This commit is contained in:
@@ -159,7 +159,7 @@ static char* get_string(private_ietf_attributes_t *this)
|
|||||||
enumerator = this->list->create_enumerator(this->list);
|
enumerator = this->list->create_enumerator(this->list);
|
||||||
while (enumerator->enumerate(enumerator, &attr))
|
while (enumerator->enumerate(enumerator, &attr))
|
||||||
{
|
{
|
||||||
int written = 0;
|
int written;
|
||||||
|
|
||||||
if (first)
|
if (first)
|
||||||
{
|
{
|
||||||
@@ -168,8 +168,12 @@ static char* get_string(private_ietf_attributes_t *this)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
written = snprintf(pos, len, ", ");
|
written = snprintf(pos, len, ", ");
|
||||||
|
if (written < 0 || written >= len)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
pos += written;
|
pos += written;
|
||||||
len -= written;
|
len -= written;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (attr->type)
|
switch (attr->type)
|
||||||
@@ -194,8 +198,13 @@ static char* get_string(private_ietf_attributes_t *this)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
written = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (written < 0 || written >= len)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
pos += written;
|
pos += written;
|
||||||
len -= written;
|
len -= written;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user