Closed MarceloZaniboni closed 1 year ago
The DBX driver call isc_database_info()
and asks for isc_info_isc_version
info item.
It provides output buffer of 40 bytes length.
The info requested is 49 bytes length and can't fit the buffer passed by client.
Thus Firebird answers with isc_info_truncated
.
Then app throws AV.
The Firebird answer is WI-5.0.0.1227 Firebird 5.0 Release Candidate 1
Before RC1 it was WI-5.0.0.973 Firebird 5.0 Beta 1
and fits into 40-byte buffer.
After release it will be shorter again.
The guess is that driver can't correctly handle isc_info_truncated
or crashes when tries to extract some version number from this info-string and can't find some known pattern in it.
We can make version string shorter or truncate it according to the client buffer size but I not sure we should do it.
We never did that in prior versions and nobody complained so far, while we supposedly have some DBX users. Weird ;-)
I guess DBX have not much users and not all of them tested our RC versions ;) Just confirmed same behavior with FB 4.0.0.2353-0-RC1
From another POV - DBX users are unable to test RC, which also not good.
The simplest is change 'Release Candidate' => 'RC' .
In RC2
From another POV - DBX users are unable to test RC, which also not good.
They are able to test DBX and found an obvious bug in it. Now the ball is on Embarcadero side (or whoever is the author of the driver).
From another POV - DBX users are unable to test RC, which also not good.
They are able to test DBX and found an obvious bug in it. Now the ball is on Embarcadero side (or whoever is the author of the driver).
The problem is that DBXExpress is a discontinued drive. That's why I said it's a legacy application.
It means that you must fix the application, that's all. Not a Firebird issue.
It means that you must fix the application, that's all. Not a Firebird issue.
As it is a legacy application, it is not possible to change everything at once, this is already being modified gradually by the team. But as there is a legacy configuration in Firebird, I understand that it could work, as it worked in the beta version. But that's just my point of view.
Marcelo, your application is unable to handle version information string that is a bit longer than one in beta version - yep, strlen("release candidate") > strlen("beta"). :-) Pay attention that length of version string in LEGACY API is limited somewhere around 255 bytes (a bit smaller - but one returned to your app is definitely MUCH shorter). I.e. your application violates legacy rules. That's why it does not work.
@AlexPeshkoff, it is not an applicaiton bug, it is DBX driver problem. AFAIU, DBX is closed source and can't be fixed easily.
The first question is should we change something on our side or recommend @MarceloZaniboni to wait for final release of Firebird 5 ?
On 11/1/23 16:24, Vlad Khorsun wrote:
@AlexPeshkoff https://github.com/AlexPeshkoff, it is not an applicaiton bug, it is DBX driver problem. AFAIU, DBX is closed source and can't be fixed easily.
I understand it - but as long as app was built using DBX it becomes app problem.
The first question is should we change something on our side or recommend @MarceloZaniboni https://github.com/MarceloZaniboni to wait for final release of Firebird 5 ?
As I've already replied - the simplest solution is to call 'release candidate 2' RC2. Overflow will be avoided - and this should not harm others.
it is DBX driver problem. AFAIU, DBX is closed source and can't be fixed easily.
Perhaps, they should try DBX driver by Devart: https://www.devart.com/dbx/interbase/
As I've already replied - the simplest solution is to call 'release candidate 2' RC2
Ok, if there will be no objections, I'll commit it tomorrow.
Check next snapshot build, please
Check next snapshot build, please
Thank you very much, resolved!
I am having difficulties with the Firebird 5.0 Release Candidate 1 version. The same did not happen in the Firebird 5.0 Beta 1 version, regarding version changes in legacy applications developed in Delphi Tokyo using the DBExpress (TSQLConnection) component. Test with the latest snapshot version available, the problem still persists. Next, send a test application for analysis if possible. And two images, one with the problem in the latest version of Release Candidate 1 available and another with the result of beta version 1. Thank you very much in advance. Thanks, Marcelo Zaniboni
TestLegancyCnxFB50.zip