Closed
Bug 837102
Opened 12 years ago
Closed 12 years ago
Adding GetFloatPref to nsIPrefBranch is not backward compatible
Categories
(Firefox :: Untriaged, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 828296
People
(Reporter: saraccount1, Unassigned)
Details
User Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Steps to reproduce:
Started Firefox 18.0.1 wit LogMeIn npRescue.dll plugin.
The plugin wanted to set custom value to "dom.max_script_run_time" by using SetIntPref function of interface nsIPrefBranch.
Actual results:
While the plugin wanted to set the value by calling SetIntPref, unexpectedly another proc was called GetIntPref, that crashed FireFox.
The causes:
- nsIPrefBranch interface was changed in a not-backward compatible way: the ney interface proc GetFloatPref was inserted between the earlier procedures, however it should be appended at the end of interface to leave the proc offsets unchanged.
- GetIntPref procedure does not check if the address of the destination is a valid address. In our case the set value 0 was used as an address, an that caused the crash.
Expected results:
The interface should not be changed in an incompatible way. It gives hard time for many plugin developers who want to be backward compatible with the earlier versions of FireFox browser. In case of LogMeIn customers, many of them stays at a FireFox version that proved itself, and does not update at once.
It seems also that the files
--GENERATED--/modules/libpref/public/_xpidlgen/nsIPrefBranch.h
and
modules/libpref/public/nsIPrefBranch.idl
does not match each other. The generated file has not the proc
float getFloatPref(in string aPrefName);
Updated•12 years ago
|
Status: UNCONFIRMED → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•