This commit is contained in:
DavidXanatos 2022-11-07 13:05:19 +01:00
parent c2d0336d3e
commit 7b36c6206b
3 changed files with 28 additions and 7 deletions

View File

@ -8,7 +8,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [1.5.3 / 5.60.3] - 2022-11-??
### Changed
### Added
- boxes set to auto delete are nor marked with a small red recycle symbol
### Fixed
@ -24,6 +24,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- fixed minor issue during Sandboxie Plus uninstall [#2421](https://github.com/sandboxie-plus/Sandboxie/issues/2421)
- fixed BSOD issue when driver initialization fails (introduced in 1.5.1) [#2431](https://github.com/sandboxie-plus/Sandboxie/issues/2431)
- fixed fake paths being listed even if true paths do not exist [#2403](https://github.com/sandboxie-plus/Sandboxie/issues/2403)
- fixed issue with firefox 106.x requesting write access to plugin executables [#2391](https://github.com/sandboxie-plus/Sandboxie/issues/2391) [#2411](https://github.com/sandboxie-plus/Sandboxie/issues/2411)

View File

@ -3127,6 +3127,18 @@ ReparseLoop:
DesiredAccess &= ~DELETE;
}
//
// firefox starting with version 106 opens plugin exe's with GENERIC_WRITE
// to mitigate this issue we strip this flag when we detect that it tries to
// do that with an exe that exists outside teh sandbox
//
if (Dll_ImageType == DLL_IMAGE_MOZILLA_FIREFOX && (DesiredAccess & GENERIC_WRITE)) {
const WCHAR *dot = wcsrchr(TruePath, L'.');
if (dot && _wcsicmp(dot, L".exe") == 0)
DesiredAccess &= ~GENERIC_WRITE;
}
//
// having processed the exceptions we can decide if we are
// going to work on the copy file, or if we are going to

View File

@ -226,7 +226,7 @@ QList<QVariant> CSbieModel::Sync(const QMap<QString, CSandBoxPtr>& BoxList, cons
QString Action = pBox->GetText("DblClickAction");
if (!Action.isEmpty() && Action.left(1) != "!")
{
if (pNode->Action != Action || (pNode->busyState || Busy)) {
if (pNode->Action != Action || (pNode->busyState || Busy) || pNode->boxDel != boxDel) {
Icon = m_IconProvider.icon(QFileInfo(pBoxEx->GetCommandFile(Action)));
pNode->Action = Action;
}
@ -242,16 +242,23 @@ QList<QVariant> CSbieModel::Sync(const QMap<QString, CSandBoxPtr>& BoxList, cons
Icon = theGUI->GetColorIcon(boxColor, inUse);
else
Icon = theGUI->GetBoxIcon(boxType, inUse);
if(boxDel && !Busy && !bVintage)
Icon = theGUI->MakeIconRecycle(Icon);
pNode->Action.clear();
}
if (!Icon.isNull()) {
if (Busy) Icon = theGUI->MakeIconBusy(Icon, pNode->busyState++);
else pNode->busyState = 0;
if (!Icon.isNull())
{
if (Busy)
Icon = theGUI->MakeIconBusy(Icon, pNode->busyState++);
else {
pNode->busyState = 0;
if(boxDel && !bVintage)
Icon = theGUI->MakeIconRecycle(Icon);
}
if (m_LargeIcons) // but not for boxes
Icon = QIcon(Icon.pixmap(QSize(32,32)).scaled(16, 16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
pNode->Icon = Icon;
Changed = 1; // set change for first column
}