Do not strdup() zero length strings in identification_create_from_string()
This commit is contained in:
@@ -930,7 +930,11 @@ identification_t *identification_create_from_string(char *string)
|
|||||||
else
|
else
|
||||||
{ /* not IPv4, mostly FQDN */
|
{ /* not IPv4, mostly FQDN */
|
||||||
this = identification_create(ID_FQDN);
|
this = identification_create(ID_FQDN);
|
||||||
this->encoded = chunk_create(strdup(string), strlen(string));
|
this->encoded.len = strlen(string);
|
||||||
|
if (this->encoded.len)
|
||||||
|
{
|
||||||
|
this->encoded.ptr = strdup(string);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
@@ -947,7 +951,11 @@ identification_t *identification_create_from_string(char *string)
|
|||||||
else
|
else
|
||||||
{ /* not IPv4/6 fallback to KEY_ID */
|
{ /* not IPv4/6 fallback to KEY_ID */
|
||||||
this = identification_create(ID_KEY_ID);
|
this = identification_create(ID_KEY_ID);
|
||||||
this->encoded = chunk_create(strdup(string), strlen(string));
|
this->encoded.len = strlen(string);
|
||||||
|
if (this->encoded.len)
|
||||||
|
{
|
||||||
|
this->encoded.ptr = strdup(string);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
@@ -969,14 +977,22 @@ identification_t *identification_create_from_string(char *string)
|
|||||||
{
|
{
|
||||||
this = identification_create(ID_FQDN);
|
this = identification_create(ID_FQDN);
|
||||||
string += 1;
|
string += 1;
|
||||||
this->encoded = chunk_create(strdup(string), strlen(string));
|
this->encoded.len = strlen(string);
|
||||||
|
if (this->encoded.len)
|
||||||
|
{
|
||||||
|
this->encoded.ptr = strdup(string);
|
||||||
|
}
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this = identification_create(ID_RFC822_ADDR);
|
this = identification_create(ID_RFC822_ADDR);
|
||||||
this->encoded = chunk_create(strdup(string), strlen(string));
|
this->encoded.len = strlen(string);
|
||||||
|
if (this->encoded.len)
|
||||||
|
{
|
||||||
|
this->encoded.ptr = strdup(string);
|
||||||
|
}
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user