Skip to content

Crash of fbclient.dll on Windows #8331

@hvlad

Description

@hvlad

The crash happens when all conditions below are met:

  • Windows client attempts to connect to the some database,
  • using local connection string, and
  • using login name, and
  • not using password, and
  • that database is already opened by another process in exclusive mode.

Steps to reproduce:

  1. Use not modified firebird.conf. Don't start Firebird server.
  2. run isql -user sysdba employee in 1st console. Connection should be successful.
  3. run isql -user sysdba employee in 2nd console - it will crash.
Stack trace
ucrtbase.dll!_invoke_watson()
ucrtbase.dll!_invalid_parameter()
ucrtbase.dll!_invalid_parameter_noinfo()
ucrtbase.dll!_stricmp()
[Inline Frame] fbclient.dll!fb_utils::stricmp() Line 82
	at src\common\utils_proto.h(82)
fbclient.dll!`Remote::analyze'::`1'::catch$25() Line 7730
	at src\remote\client\interface.cpp(7730)
[External Code]
fbclient.dll!Remote::analyze(cBlock={...}, attach_name={...}, flags=7, pb={...}, parSet={...}, node_name={...}, ref_db_name=0x0000000000000000, cryptCb=0x0000000000000000) Line 7680
	at src\remote\client\interface.cpp(7680)
fbclient.dll!Remote::RProvider::attach(status=0x000000000014ebd0, filename=0x00000000001c1fb0, dpb_length=1372432, dpb=0x000000000014ede8, loopback=true) Line 1220
	at src\remote\client\interface.cpp(1220)
[Inline Frame] fbclient.dll!Remote::Loopback::attachDatabase() Line 1285
	at src\remote\client\interface.cpp(1285)
fbclient.dll!Firebird::IProviderBaseImpl<Remote::Loopback,Firebird::CheckStatusWrapper,Remote::RProvider>::cloopattachDatabaseDispatcher(self=0x00000000001c6518, status=0x00000000001c6518, fileName=0x00000000001c1fb0, dpbLength=11, dpb=0x000000000014ede8) Line 12231
	at src\include\firebird\IdlFbInterfaces.h(12231)
[Inline Frame] fbclient.dll!Firebird::IProvider::attachDatabase() Line 2914
	at src\include\firebird\IdlFbInterfaces.h(2914)
fbclient.dll!Why::Dispatcher::attachOrCreateDatabase(status=0x000000000014f1f0, createFlag, filename=0x00700000fffffffe, dpbLength=9, dpb=0x000000000014f2a8) Line 6463
	at src\yvalve\why.cpp(6463)
fbclient.dll!Why::Dispatcher::attachDatabase(status, filename, dpbLength, dpb=0x000000000014f2a8) Line 6377
	at src\yvalve\why.cpp(6377)
fbclient.dll!Firebird::IProviderBaseImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::IPluginBaseImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IReferenceCountedImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IVersionedImpl<Why::Dispatcher,Firebird::CheckStatusWrapper,Firebird::Inherit<Firebird::IProvider>>>>>>>::cloopattachDatabaseDispatcher(self=0x00000000001c1958, status=0x00000000001c1958, fileName=0x00000001400c5380, dpbLength=9, dpb=0x000000000014f2a8) Line 12231
	at src\include\firebird\IdlFbInterfaces.h(12231)
[Inline Frame] isql.exe!Firebird::IProvider::attachDatabase() Line 2914
	at src\include\firebird\IdlFbInterfaces.h(2914)
isql.exe!newdb(dbname=0x00000001400c5380, usr, psw, numbufs, sql_role_nm=0x00000001400c5630, start_user_trans=true) Line 8647
	at gen\isql\isql.cpp(8647)
isql.exe!do_isql() Line 6132
	at gen\isql\isql.cpp(6132)
isql.exe!ISQL_main(argc, argv=0x00000000004c29b0) Line 1936
	at gen\isql\isql.cpp(1936)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions