diff options
Diffstat (limited to 'src/libimcv/generic/generic_attr_string.c')
-rw-r--r-- | src/libimcv/generic/generic_attr_string.c | 8 |
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) |