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