Firebird crashes when trying to create database in restricted path
-------------------------------------------------------------------

                 Key: CORE-3996
                 URL: http://tracker.firebirdsql.org/browse/CORE-3996
             Project: Firebird Core
          Issue Type: Bug
          Components: Engine
    Affects Versions: 2.5.2
         Environment: Windows 2003
            Reporter: Yurij


When firebird.conf contains DatabaseAccess = Restrict SomePath
and isql trying to create database with some other path, Firebird crashes with 
stack trace:

>       fbserver.exe!trace_failed_attach(Jrd::TraceManager * 
> traceManager=0x00000000, const char * filename=0x0000000c, const 
> DatabaseOptions & options={...}, bool create=true, int * status=0x00000000)  
> Line 781     C++
        fbserver.exe!jrd8_create_database(int * user_status=0x01bffb30, const 
char * filename=0x01bffabc, Jrd::Attachment * * handle=0x01bff9bc, unsigned 
short dpb_length=132, const unsigned char * dpb=0x010b070c)  Line 1989        
C++
        fbserver.exe!isc_create_database(int * user_status=0x01bffb30, unsigned 
short file_length=29, const char * file_name=0x01d26b00, void * * 
public_handle=0x01bffb24, short dpb_length=132, const unsigned char * 
dpb=0x01d2734c, unsigned short __formal=0)  Line 2071 + 0x5f bytes      C++
        fbserver.exe!attach_database2(rem_port * port=0x01d26e50, P_OP 
operation=op_create, const char * file=0x01d26b00, int l=29, const unsigned 
char * dpb=0x01bffd48, int dl=94, packet * send=0x019ffae0)  Line 1218       C++
        fbserver.exe!attach_database(rem_port * port=0x01d26e50, P_OP 
operation=op_create, p_atch * attach=0x019ffe58, packet * send=0x00000000)  
Line 1143 + 0x61 bytes        C++
        fbserver.exe!process_packet(rem_port * port=0x01d26e50, packet * 
sendL=0x019ffae0, packet * receive=0x019ffd70, rem_port * * result=0x01bfff2c)  
Line 3323 + 0x10 bytes C++
        fbserver.exe!loopThread(void * __formal=0x0000007a)  Line 5212 + 0x22 
bytes     C++
        fbserver.exe!ThreadPriorityScheduler::run()  Line 169 + 0x8 bytes       
C++
        fbserver.exe!`anonymous namespace'::threadStart(void * arg=0x010b05b8)  
Line 99 C++
        msvcr80.dll!__endthreadex()  + 0x3b bytes       
        msvcr80.dll!__endthreadex()  + 0xc7 bytes       
        kernel32.dll!_BaseThreadStart@8()  + 0x34 bytes 


This is caused by line jrd.cpp/1988:
 trace_failed_attach(NULL, filename, options, true, false);

last "false" parameter (from old-style call, before revision 54433) implicitly 
converted to NULL status pointer, which is then deferenced in 
trace_failed_attach (jrd.cpp, 781):

 const bool no_priv = (status[1] == isc_login || status[1] == isc_no_priv);



-- 
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

        

------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to