From 95e6fd42cce91fe86eef397083ffcecdc540169e Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sat, 26 May 2012 18:29:26 -0600 Subject: [PATCH] tt_isam_record.C: fix CERT VU#387387 part 2 --- cde/lib/tt/bin/ttdbserverd/tt_isam_record.C | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cde/lib/tt/bin/ttdbserverd/tt_isam_record.C b/cde/lib/tt/bin/ttdbserverd/tt_isam_record.C index 75c18b91e..5d635e2ee 100644 --- a/cde/lib/tt/bin/ttdbserverd/tt_isam_record.C +++ b/cde/lib/tt/bin/ttdbserverd/tt_isam_record.C @@ -159,5 +159,18 @@ void _Tt_isam_record::setBytes (int start, int length, const _Tt_string &value) { - (void)memcpy((char *)buffer+start, (char *)value, length); + // JET - CERT vulnerability: VU#387387 - value is user supplied. + // Geez. + int bavail = (maxLength - start); + int bcp = 0; + + if (bavail <= 0) + return; + + if (bavail > length) + bcp = length; + else + bcp = bavail; + + (void)memcpy((char *)buffer+start, (char *)value, bcp); }