Closed Bug 545080 Opened 12 years ago Closed 12 years ago

When multi-byte letter is included in the path, the detection of plug-in dll fails

Categories

(Core :: Plug-ins, defect)

x86
Windows 7
defect
Not set
major

Tracking

()

RESOLVED FIXED
Tracking Status
status1.9.2 --- .4-fixed

People

(Reporter: alice0775, Assigned: benjamin)

References

Details

(Keywords: regression, Whiteboard: [fixed-lorentz])

Attachments

(2 files, 1 obsolete file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.2pre) Gecko/20100208 Firefox/3.6.2
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a2pre) Gecko/20100208 Minefield/3.7a2pre ID:20100208050429

When multi-byte letter is included in  the path, the detection of plug-in dll fails.

Reproducible: Always

Steps to Reproduce:
1.Install Minefield in path including the multi-byte letter  (for example. D:\トランク\Minefield3.7\ ) 
2.Start Minefield 
3.Go about:plugins

Actual Results:  
No "Mozilla Default Plug-in"npnul32.dll  is detected.


Expected Results:  
"Mozilla Default Plug-in"npnul32.dll  should be detected.

Regression Window:

Works fine:
http://hg.mozilla.org/mozilla-central/rev/44c392db6672
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a1pre) Gecko/20091214
Minefield/3.7a1pre ID:20091214045914

Broken:
http://hg.mozilla.org/mozilla-central/rev/96e8d529b2d3
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a1pre) Gecko/20091215
Minefield/3.7a1pre ID:20091215045531

Pushlog:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=44c392db6672&tochange=96e8d529b2d3
Blocks: OOPP
Keywords: regression
Version: unspecified → Trunk
What native codepage/version of Windows are you using? Does D:\トランク\Minefield3.7\ fit into that native codepage?

This may be a -DUNICODE problem. Should be easy enough to test, though!
CP932 which is default for Windows 7 x64 Home Premium Japanese edition.
Assignee: nobody → benjamin
Comment on attachment 426055 [details] [diff] [review]
Use explicit W functions, make nsPluginInfo fields UTF8 always, rev. 1

-      result = ::RegQueryValueEx(keyloc, TEXT("InstallDir"), NULL, &type,
+      result = ::RegQueryValueEx(keyloc, L"InstallDir", NULL, &type,

Should the "RegQueryValueEx" call here be changed to "RegQueryValueExW"?

-      if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, TEXT("Path"), NULL, &type,
+      if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, L"Path", NULL, &type,

Also happens here.

In nsPluginsDirWin.cpp there is a call to "VerQueryValue" - should this be "VerQueryValueW"?

+  if (kNotFound == idx)
+      return NS_ERROR_FILE_INVALID_PATH;

Incorrect indentation here. 4-space should be 2-space.
Attachment #426055 - Attachment is obsolete: true
Attachment #427370 - Flags: review?(joshmoz)
Attachment #426055 - Flags: review?(joshmoz)
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Comment on attachment 427370 [details] [diff] [review]
Use explicit W functions, make nsPluginInfo fields UTF8 always, rev. 1.1

-      if (VerQueryValue(lpData, TEXT("\\"), &lpBuffer, &uLen) != 0) {
+      if (VerQueryValue(lpData, L"\\", &lpBuffer, &uLen) != 0) {

-> VerQueryValueW

r+, if you fix that on check-in I don't need to review this again
Attachment #427370 - Flags: review?(joshmoz) → review+
this broke building winmo with plugins enabled.  Unfortunately this wasn't caught when it landed because our build bots aren't building with plugins enabled, we should fix that too.
Attachment #427875 - Flags: review?(joshmoz)
CE5:

From http://msdn.microsoft.com/en-us/library/ms890963.aspx

DWORD GetFileVersionInfoSize(
  LPTSTR lptstrFilename,
  LPDWORD lpdwHandle
);



Windows 32:

From http://msdn.microsoft.com/en-us/library/ms647005%28VS.85%29.aspx

DWORD GetFileVersionInfoSize(      
    LPCTSTR lptstrFilename,
    LPDWORD lpdwHandle
);
Comment on attachment 427875 [details] [diff] [review]
patch to fix winmo

Add a comment above the #ifdef explaining this madness.
Attachment #427875 - Flags: review?(joshmoz) → review+
http://hg.mozilla.org/mozilla-central/rev/f221078b13ff
http://hg.mozilla.org/mozilla-central/rev/9502a0c15851
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Blanket approval for Lorentz merge to mozilla-1.9.2
a=beltzner for 1.9.2.4 - please make sure to mark status1.9.2:.4-fixed
You need to log in before you can comment on or make changes to this bug.