[FB3][AV] Crash when create an UDF with "RETURNS PARAMETER pos_number"
----------------------------------------------------------------------
Key: CORE-4059
URL: http://tracker.firebirdsql.org/browse/CORE-4059
Project: Firebird Core
Issue Type: Bug
Components: Engine, UDF
Affects Versions: 3.0 Initial
Reporter: Kovalenko Dmitry
FB 3.0.0.30247
SQL: DECLARE EXTERNAL FUNCTION UDF_DUMMY2_RPN_1 smallint, integer, float,
double precision RETURNS PARAMETER 1 ENTRY_POINT 'IB_UDF_abs' MODULE_NAME
'ib_udf';
Stack:
engine12.dll!NestConst<Jrd::dsql_fld>::operator Jrd::dsql_fld *()
Строка 48 + 0x11 байт C++
>
> engine12.dll!Jrd::CreateAlterFunctionNode::dsqlPass(Jrd::DsqlCompilerScratch
> * dsqlScratch=0x020c0074) Строка 11209 + 0x15 байт C++
engine12.dll!Jrd::Node::doDsqlPass<Jrd::DdlNode>(Jrd::DsqlCompilerScratch *
dsqlScratch=0x020c0074, NestConst<Jrd::DdlNode> & node={...}) Строка 133 +
0x1e байт C++
engine12.dll!Jrd::DsqlDdlRequest::dsqlPass(Jrd::thread_db *
tdbb=0x0145effc, Jrd::DsqlCompilerScratch * scratch=0x020c0074, ntrace_result_t
* traceResult=0x0145eb04) Строка 878 + 0x13 байт C++
engine12.dll!prepareStatement(Jrd::thread_db * tdbb=0x0145effc,
Jrd::dsql_dbb * database=0x02060020, Jrd::jrd_tra * transaction=0x01ff02c8,
unsigned long textLength=151, const char * text=0x0227b9a0, unsigned short
clientDialect=1, unsigned short parserVersion=2, bool isInternalRequest=false)
Строка 1450 + 0x1d байт C++
engine12.dll!prepareRequest(Jrd::thread_db * tdbb=0x0145effc,
Jrd::dsql_dbb * database=0x02060020, Jrd::jrd_tra * transaction=0x01ff02c8,
unsigned long textLength=151, const char * text=0x0227b9a0, unsigned short
clientDialect=1, unsigned short parserVersion=2, bool isInternalRequest=false)
Строка 1322 + 0x28 байт C++
engine12.dll!DSQL_prepare(Jrd::thread_db * tdbb=0x0145effc,
Jrd::Attachment * attachment=0x02080020, Jrd::jrd_tra * transaction=0x01ff02c8,
unsigned long length=151, const char * string=0x0227b9a0, unsigned short
dialect=1, Firebird::Array<unsigned char,Firebird::EmptyStorage<unsigned char>
> * items=0x0145ef8c, Firebird::Array<unsigned
char,Firebird::EmptyStorage<unsigned char> > * buffer=0x0145ef74, bool
isInternalRequest=false) Строка 373 + 0x28 байт C++
engine12.dll!Jrd::JAttachment::prepare(Firebird::IStatus *
user_status=0x0145f2a4, Firebird::ITransaction * apiTra=0x00c2ce34, unsigned
int stmtLength=151, const char * sqlStmt=0x0227b9a0, unsigned int dialect=12,
unsigned int flags=71) Строка 4512 + 0x56 байт C++
fbclient.dll!Why::YAttachment::prepare(Firebird::IStatus *
status=0x0145f2a4, Firebird::ITransaction * transaction=0x00804f50, unsigned
int stmtLength=151, const char * sqlStmt=0x0227b9a0, unsigned int dialect=12,
unsigned int flags=71) Строка 4480 + 0x44 байт C++
firebird.exe!rem_port::prepare_statement(p_sqlst * prepareL=0x00832e68,
packet * sendL=0x00832970) Строка 3876 + 0x5c байт C++
firebird.exe!process_packet(rem_port * port=0x00832308, packet *
sendL=0x00832970, packet * receive=0x00832c64, rem_port * * result=0x0145fea0)
Строка 4179 C++
firebird.exe!loopThread(void * __formal=0x0000003a) Строка 5675 + 0x4f
байт C++
firebird.exe!`anonymous namespace'::ThreadArgs::run() Строка 73 + 0x1f
байт C++
firebird.exe!threadStart(void * arg=0x0083157c) Строка 89 C++
Local variable
- this 0x020c0810 {name={...} create=true alter=false ...}
Jrd::CreateAlterFunctionNode * const
+ Jrd::DdlNode {...} Jrd::DdlNode
+ name {data=0x020c0820 "UDF_DUMMY2_RPN_1" count=16 }
Firebird::MetaName
create true bool
alter false bool
+ external {ptr=0x020c1448 }
NestConst<Jrd::ExternalClause>
deterministic false bool
- parameters {count=4 capacity=4 data=0x020c0e64 }
Firebird::Array<NestConst<Jrd::ParameterClause>,Firebird::EmptyStorage<NestConst<Jrd::ParameterClause>
> >
+ Firebird::EmptyStorage<NestConst<Jrd::ParameterClause> >
{...} Firebird::EmptyStorage<NestConst<Jrd::ParameterClause> >
count 4 unsigned int
capacity 4 unsigned int
+ data 0x020c0e64 {ptr=0x020c0a78 }
NestConst<Jrd::ParameterClause> *
+ returnType {ptr=0x00000000 }
NestConst<Jrd::ParameterClause>
+ localDeclList {ptr=0x00000000 }
NestConst<Jrd::CompoundStmtNode>
+ source {...} Firebird::StringBase<Firebird::StringComparator>
+ body {ptr=0x00000000 } NestConst<Jrd::StmtNode>
compiled false bool
invalid false bool
+ package {data=0x020c08a4 "" count=0 } Firebird::MetaName
+ packageOwner {...}
Firebird::StringBase<Firebird::StringComparator>
privateScope false bool
udfReturnPos 1 long
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
endpoint security space. For insight on selecting the right partner to
tackle endpoint security challenges, access the full report.
http://p.sf.net/sfu/symantec-dev2dev
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel