1.5.3
This commit is contained in:
parent
c2d0336d3e
commit
7b36c6206b
|
@ -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)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue