Closed Bug 792541 Opened 7 years ago Closed 7 years ago

DLL block request: sprotector.dll

Categories

(Toolkit :: Blocklist Policy Requests, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
Tracking Status
firefox16 + fixed
firefox17 --- fixed
firefox18 --- fixed

People

(Reporter: akeybl, Assigned: benjamin)

References

(Blocks 1 open bug)

Details

(Whiteboard: [dll][Win8])

Attachments

(1 file, 2 obsolete files)

DLL name: sprotector.dll
DLL versions to block: (unversioned)
Applications, versions, and platforms affected: Windows 8

Reasons:
Safend let us know that "SProtcetor.dll existed in our legacy versions that will not work on Windows 8" and this is a top startup crasher on Win8 (bug 785940).
Blocks: 785940
So is this supposed to be blocked on Windows 8 *only*? The DLL blocklist currently does not have the capacity to block only on certain versions of Windows.
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #1)
> So is this supposed to be blocked on Windows 8 *only*? The DLL blocklist
> currently does not have the capacity to block only on certain versions of
> Windows.

Would it be difficult to conditionalize based upon WinNT version? Out of scope for FF16 beta 5 and up? I'm not confident that we should be blocklisting for all versions of Windows, which means this would go unfixed prior to Win8's release.
Comment on attachment 663388 [details] [diff] [review]
Add a flag for "win8 and up only" and block sprotector.dll, rev. 1

Review of attachment 663388 [details] [diff] [review]:
-----------------------------------------------------------------

::: toolkit/xre/nsWindowsDllBlocklist.cpp
@@ +57,5 @@
> +
> +  // Flags
> +  uint32_t flags;
> +
> +  static const uint32_t kBLOCK_WIN8PLUS_ONLY = 0x1;

Nit: please make this an enum with a default value of 0.

@@ +288,5 @@
> +  OSVERSIONINFOW osInfo;
> +  osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);
> +  GetVersionExW(&osInfo);
> +  return osInfo.dwMajorVersion > 6 || 
> +         osInfo.dwMajorVersion >= 6 && osInfo.dwMinorVersion >= 2;

Nit: please use parenthesis to make the precedence clear.

@@ +378,5 @@
>  #ifdef DEBUG_very_verbose
>      printf_stderr("LdrLoadDll: info->name: '%s'\n", info->name);
>  #endif
>  
> +    if (info->flags & DllBlockInfo::kBLOCK_WIN8PLUS_ONLY &&

Parentheses here too please.
Attachment #663388 - Flags: review?(ehsan) → review+
Attachment #663388 - Attachment is obsolete: true
Attachment #663446 - Attachment is obsolete: true
https://hg.mozilla.org/mozilla-central/rev/ca4af4af5334

Got approval from akeybl to push this up to aurora/beta immediately, I'll do that in a few hours.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Attachment #663449 - Flags: approval-mozilla-beta+
Attachment #663449 - Flags: approval-mozilla-aurora+
Comment on attachment 663449 [details] [diff] [review]
Add a flag for "win8 and up only" and block sprotector.dll, rev. 1.2

Review of attachment 663449 [details] [diff] [review]:
-----------------------------------------------------------------

::: toolkit/xre/nsWindowsDllBlocklist.cpp
@@ +282,5 @@
>    return full_fname;
>  }
>  
> +static bool
> +IsWin8OrLater()

To avoid code duplication all over the tree for things like this, this probably would have been better in xpcom/base/nsWindowsHelpers.h where IsVistaOrLater already exists inside an unnamed namespace
Product: addons.mozilla.org → Toolkit
You need to log in before you can comment on or make changes to this bug.