aboutsummaryrefslogtreecommitdiffstats
path: root/src/libimcv/generic/generic_attr_string.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libimcv/generic/generic_attr_string.c')
-rw-r--r--src/libimcv/generic/generic_attr_string.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libimcv/generic/generic_attr_string.c b/src/libimcv/generic/generic_attr_string.c
index e14e8d2aa..e63c0126a 100644
--- a/src/libimcv/generic/generic_attr_string.c
+++ b/src/libimcv/generic/generic_attr_string.c
@@ -98,8 +98,14 @@ METHOD(pa_tnc_attr_t, process, status_t,
{
return NEED_MORE;
}
- pa_attr_names = imcv_pa_tnc_attributes->get_names(imcv_pa_tnc_attributes,
+ pa_attr_names = imcv_pa_tnc_attributes->get_names(imcv_pa_tnc_attributes,
this->type.vendor_id);
+ if (this->value.len > this->length)
+ {
+ DBG1(DBG_TNC, "inconsistent length of %N/%N string attribute",
+ pen_names, this->type.vendor_id, pa_attr_names, this->type.type);
+ return FAILED;
+ }
pos = memchr(this->value.ptr, '\0', this->value.len);
if (pos)