Skip to content

Server crashes while converting an overscaled numeric to a string [CORE4093] #4421

@firebird-automations

Description

@firebird-automations

Submitted by: Petr Gurin (gurin)

Is related to QA513

select cast(round(123.45, -40) as varchar (41)) from rdb$database
works fine,

select cast(round(123.45, -40) as varchar (40)) from rdb$database
does: conversion error from string "00000000000000000000000000000000000000000", but

select cast(round(123.45, -41) as varchar (41)) from rdb$database
crushes the sever.
This select is really stupid and the problem was found occasionally while I was testing the boundary behaviour of converting stored procedure; but the similar request gives the possibility for the user to crash server practicaly without any permissions.

Commits: 8ea5479 bdbc5ea d276486 FirebirdSQL/fbt-repository@7d3f215 FirebirdSQL/fbt-repository@c06de4e FirebirdSQL/fbt-repository@8dbdec4 FirebirdSQL/fbt-repository@94d5e36