[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

Reply via email to