Firebird Documentation Index → Firebird 2.0.6 Release Notes → General Notes → Sub-release 2.0.5 |
This sub-release does not add any new functionality to the database engine. Several important bug-fixes that have turned up during development of versions 2.1.x and 2.5 have been backported.
A long-standing, legacy loophole in the handling of DPB parameters enabled ordinary users to make connection settings that could lead to database corruptions or give them access to SYSDBA-only operations. The loophole has been closed, a change that could affect several existing applications, database tools and connectivity layers (drivers, components). Details are in Chapter 3, Changes to the Firebird API and ODS.
It has been discovered that the gfix utility has a legacy bug (CORE-2271) that exhibits itself during the database validation/repair routines on large databases. The bug has been fixed in version 2.1.2 and affects all preceding versions of Firebird, including this sub-release. The privilege level of the user running these routines is checked too late in the operation, thus allowing a non-privileged user (i.e., not SYSDBA or Owner) to start a validation operation. Once the privilege check occurs, the database validation can be halted in mid-operation and thus be left unfinished, resulting in logical corruption that might not have been there otherwise.
It appears likely that this trouble occurs only with quite large databases: on small ones, the changes performed may complete before the privilege check.
Documentation has always stipulated that the SYSDBA or Owner must perform operations that do database-level changes. The gfix code was always meant to enforce this rule. If you have discovered this loophole yourself and have regarded it as “an undocumented feature” that allowed ordinary users to do validation and repair, then you are on notice. It is a bug and has been corrected in versions 2.1.2 and 2.5. It will be corrected in versions 2.0.6 and 1.5.6.
A regression issue surfaced with the implementation of the new gfix shutdown modes when shutdown is called with the -attach or -tran options. If connections are still alive when the specified timeout expires, the engine returns a message indicating that the shutdown was unsuccessful. However, instead of leaving the database in the online state, as it should, it puts the database into some uncertain “off-line” state and further connections are refused.
It affects all versions of Firebird up to and including v.2.0.5 and v.2.1.3, and all v.2.5 alphas, betas and release candidates. See Tracker ticket CORE-2846.
Firebird Documentation Index → Firebird 2.0.6 Release Notes → General Notes → Sub-release 2.0.5 |