From 8bca9c7a41502b09f7d9500cc0c150f2daf898d6 Mon Sep 17 00:00:00 2001 From: DavidXanatos <3890945+DavidXanatos@users.noreply.github.com> Date: Sun, 21 May 2023 13:41:05 +0200 Subject: [PATCH] update --- CHANGELOG.md | 1 + Sandboxie/core/drv/session.c | 2 +- SandboxiePlus/SandMan/SandMan.cpp | 16 ++++++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99af1288..44367b94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Changed - improved compatibility template for Privacy Enhanced box types (thanks offhub) [#2899](https://github.com/sandboxie-plus/Sandboxie/pull/2899) +- improved signature error message [#2931](https://github.com/sandboxie-plus/Sandboxie/issues/2931) ### Fixed - fixed Qt6 issues in ARM64 build diff --git a/Sandboxie/core/drv/session.c b/Sandboxie/core/drv/session.c index 389a4041..57c4f1f2 100644 --- a/Sandboxie/core/drv/session.c +++ b/Sandboxie/core/drv/session.c @@ -341,7 +341,7 @@ _FX NTSTATUS Session_Api_Leader(PROCESS *proc, ULONG64 *parms) if (proc) status = STATUS_NOT_IMPLEMENTED; else if (!MyIsCallerSigned()) - status = STATUS_ACCESS_DENIED; + status = STATUS_INVALID_SIGNATURE; // STATUS_ACCESS_DENIED else { session = Session_Get(TRUE, -1, &irql); diff --git a/SandboxiePlus/SandMan/SandMan.cpp b/SandboxiePlus/SandMan/SandMan.cpp index 32f1c06f..2302d73d 100644 --- a/SandboxiePlus/SandMan/SandMan.cpp +++ b/SandboxiePlus/SandMan/SandMan.cpp @@ -2443,17 +2443,21 @@ SB_RESULT(void*) CSandMan::ConnectSbie() SB_STATUS CSandMan::ConnectSbieImpl() { SB_STATUS Status = theAPI->Connect(g_PendingMessage.isEmpty(), theConf->GetBool("Options/UseInteractiveQueue", true)); - - if (Status.GetStatus() == 0xC0000038L /*STATUS_DEVICE_ALREADY_ATTACHED*/) { - OnLogMessage(tr("CAUTION: Another agent (probably SbieCtrl.exe) is already managing this Sandboxie session, please close it first and reconnect to take over.")); - return SB_OK; - } - + if (!g_PendingMessage.isEmpty()) { OnMessage(g_PendingMessage); PostQuitMessage(0); } + if (Status.GetStatus() == 0xC0000038L /*STATUS_DEVICE_ALREADY_ATTACHED*/) { + OnLogMessage(tr("CAUTION: Another agent (probably SbieCtrl.exe) is already managing this Sandboxie session, please close it first and reconnect to take over.")); + Status = SB_OK; + } + else if (Status.GetStatus() == 0xC000A000L /*STATUS_INVALID_SIGNATURE*/) { + QMessageBox::critical(this, "Sandboxie-Plus", tr("ERROR: The Sandboxie-Plus Manager (SandMan.exe) does not have a valid signature (SandMan.exe.sig). Please download a trusted release from the official Download page.")); + Status = SB_OK; + } + return Status; }