8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 00:03:03 +01:00

Fixed SEGV reported by Konstantin.

This commit is contained in:
dimitr 2005-08-25 12:37:26 +00:00
parent 1ca308f27b
commit faa8162a2b

View File

@ -931,13 +931,15 @@ dsql_nod* PASS1_node(dsql_req* request, dsql_nod* input, bool proc_flag)
case nod_current_timestamp:
{
dsql_nod* const_node = input->nod_arg[0];
fb_assert(const_node->nod_type == nod_constant);
const int precision = (int)(IPTR) const_node->nod_arg[0];
fb_assert(precision >= 0);
// We pass precision as a single byte, hence a check
// to avoid overflows
if (precision > MAX_UCHAR) {
const_node->nod_arg[0] = (dsql_nod*)(IPTR) MAX_UCHAR;
if (const_node) {
fb_assert(const_node->nod_type == nod_constant);
const int precision = (int)(IPTR) const_node->nod_arg[0];
fb_assert(precision >= 0);
// We pass precision as a single byte, hence a check
// to avoid overflows
if (precision > MAX_UCHAR) {
const_node->nod_arg[0] = (dsql_nod*)(IPTR) MAX_UCHAR;
}
}
}
break;