bharath v created IMPALA-6844:
---------------------------------
Summary: Fix possible NULL dereference in to_date() UDF
Key: IMPALA-6844
URL: https://issues.apache.org/jira/browse/IMPALA-6844
Project: IMPALA
Issue Type: Improvement
Affects Versions: Impala 2.11.0, Impala 2.10.0, Impala 2.9.0
Reporter: bharath v
If {{result.ptr}} allocation fails for some reason inside the {{StringVal}}
constructor, we still overwrite {{result.len}} and continue.
{noformat}
StringVal TimestampFunctions::ToDate(FunctionContext* context,
const TimestampVal& ts_val) {
if (ts_val.is_null) return StringVal::null();
const TimestampValue ts_value = TimestampValue::FromTimestampVal(ts_val);
// Defensively, return NULL if the timestamp does not have a date portion. Some
of
// our built-in functions might incorrectly return such a malformed timestamp.
if (!ts_value.HasDate()) return StringVal::null();
StringVal result(context, 10);
result.len = 10;
// Fill in year, month, and day.
IntToChar(result.ptr, ts_value.date().year(), 4); <-----
IntToChar(result.ptr + 5, ts_value.date().month(), 2);
IntToChar(result.ptr + 8, ts_value.date().day(), 2);
// Fill in dashes.
result.ptr[7] = '-';
result.ptr[4] = '-';
return result;
}
{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)