[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