Fix use of snprintf() in IETF attributes to string conversion

This commit is contained in:
Martin Willi
2010-07-28 10:54:48 +02:00
parent 018543f3a8
commit c118559afe
@@ -159,7 +159,7 @@ static char* get_string(private_ietf_attributes_t *this)
enumerator = this->list->create_enumerator(this->list);
while (enumerator->enumerate(enumerator, &attr))
{
int written = 0;
int written;
if (first)
{
@@ -168,8 +168,12 @@ static char* get_string(private_ietf_attributes_t *this)
else
{
written = snprintf(pos, len, ", ");
if (written < 0 || written >= len)
{
break;
}
pos += written;
len -= written;
len -= written;
}
switch (attr->type)
@@ -194,8 +198,13 @@ static char* get_string(private_ietf_attributes_t *this)
break;
}
default:
written = 0;
break;
}
if (written < 0 || written >= len)
{
break;
}
pos += written;
len -= written;
}