Closed Bug 837102 Opened 12 years ago Closed 12 years ago

Adding GetFloatPref to nsIPrefBranch is not backward compatible

Categories

(Firefox :: Untriaged, defect)

18 Branch
x86_64
Windows 7
defect
Not set
normal

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);
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.