Verify difference file path against DatabaseAccess#9089
Conversation
The difference file opened in openDelta and beginBackup was not verified against DatabaseAccess like the other database file paths.
|
Hmm... why do you think difference file placement must be verified exactly this way, i.e. against |
Not agree, sorry |
|
LibreOffice, optionally, supports embedded firebird databases so we'd like to not allow arbitrary dbs, that a user might receive from someone else, to specify what file paths they backup to and the LibreOffice firebird save |
A database we extract from a .odb is always in the normal backup state, so refuse one that is not, we're not interested in the difference file mode case. firebird upstream attempt as: FirebirdSQL/firebird#9089 And do it manually for the system-firebird case. Change-Id: Iff9ebbb075379ca47a7f7f5886b693ac23860566 Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/6702 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CPCI <releng@collaboraoffice.com> (cherry picked from commit e7ea381e87cadaf31bf1ad2213a23f17a6284d1c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208040 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
A database we extract from a .odb is always in the normal backup state, so refuse one that is not, we're not interested in the difference file mode case. firebird upstream attempt as: FirebirdSQL/firebird#9089 And do it manually for the system-firebird case. Change-Id: Iff9ebbb075379ca47a7f7f5886b693ac23860566 Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/6702 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CPCI <releng@collaboraoffice.com> (cherry picked from commit e7ea381e87cadaf31bf1ad2213a23f17a6284d1c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208040 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208064 Tested-by: Jenkins
A database we extract from a .odb is always in the normal backup state, so refuse one that is not, we're not interested in the difference file mode case. firebird upstream attempt as: FirebirdSQL/firebird#9089 And do it manually for the system-firebird case. Change-Id: Iff9ebbb075379ca47a7f7f5886b693ac23860566 Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/6702 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CPCI <releng@collaboraoffice.com> (cherry picked from commit e7ea381e87cadaf31bf1ad2213a23f17a6284d1c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208040 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208064 Tested-by: Jenkins Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208076
|
On 7/14/26 01:48, Caolán McNamara wrote:
*caolanm* left a comment (FirebirdSQL/firebird#9089)
<#9089 (comment)>
LibreOffice, optionally, supports embedded firebird databases so we'd
like to not allow arbitrary dbs, that a user might receive from
someone else, to specify what file paths they backup to and the
LibreOffice firebird save
is via the backup mechanism.
Wider look at the problem is needed here. Yes, for embedded case this
seems to be useful, but take into an account large dedicated server.
From performance POV difference file should better be saved on separate
HW device which will sooner of all be mounted at some other location. As
the first sample this may be /tmp - which is hardly included into
DatabaseAccess.
I agree with your requirements for LibreOffice but suppose we need
something smarter.
|
LibreOffice might issue |
In an already existing db load case it seems to be too late to call ALTER DATABASE, the difference file is already written during the attach |
|
If database is in backup state already - sure, it is too late to change delta file placement. |
|
What happens with these embedded databases is that a backup-format fdb is packaged into a wrapper .odb LibreOffice "Base" file, so LibreOffice can be presented with an arbitrary, potentially untrustworthy, fdb. Which is why I was reaching at DatabaseAccess, which seemed to give the kind of restrictions that would be useful there. |
How that untrustworthy database become packaged into a wrapper .odb ? If you need help or advise how to do such checks or anything else related with Firebird usage - just explain your problem and ask.
This is wrong way, sorry. You want to make all users of Firebird to follow artificial restriction that solve no issue for Firebird users. |
Taking into account that it is just a ZIP archive - however the malefactor wants, including modification of LO sources. |
The difference file opened in openDelta and beginBackup is not verified against DatabaseAccess, unlike the other database file paths. This looks like an oversight, presumably the setting is meant to cover every file the engine opens by path. Found while using the embedded engine from LibreOffice.