Afternoon,

So, NetSurf runs mostly ok on ARMv7 platforms with their backwards
incompatible unaligned LDR behaviour turned on. Tinct, however, appears
to perform some LDRs from unaligned addresses, resulting in crashes. 

Here's a backtrace:

> Fatal signal received: Segmentation fault
> 
> Stack backtrace:
> 
> Running thread 0x59e53c
>   (  5a7ee0) pc:   462860 lr:    74f4c sp:   5a7ee4  __write_backtrace()
>   (  5a7f10) pc:    74d64 lr:   463298 sp:   5a7f14  ^ro_gui_signal()
>   (  5a7f38) pc:   463288 lr:   462f58 sp:   5a7f3c  __unixlib_exec_sig()
>   (  5a7fa0) pc:   462a18 lr:   463870 sp:   5a7fa4  __unixlib_raise_signal()
>   (  5a7fb0) pc:   463774 lr:   5a6c48 sp:   5a6c04  __h_cback()
> 
>   Register dump at 005a7fb4:
> 
>     a1:      12f a2:       2d a3:      1f4 a4:        0
>     v1:        0 v2:        0 v3: 202513b4 v4:        1
>     v5:      3d5 v6:        0 sl: 41b78d39 fp: 67197124
>     ip: 20248394 sp:   5a6c04 lr:   5a6c48 pc: 2024609c
>     cpsr: 80000113
> 
>   20246088 : .p.â : e21a7003 : ANDS    R7,R10,#3
>   2024608c : .... : 0a000008 : BEQ     &202460B4
>   20246090 : .àgâ : e267e003 : RSB     R14,R7,#3
>   20246094 : ..^á : e15e0000 : CMP     R14,R0
>   20246098 : .à Á : c1a0e000 : MOVGT   R14,R0
>   2024609c : .??å : e59a9000 : LDR     R9,[R10,#0]
>   202460a0 : ....@Ð : d040000e : SUBLE   R0,R0,R14
>   202460a4 : ..?Ò : d2800003 : ADDLE   R0,R0,#3
>   202460a8 : ..?À : c0800007 : ADDGT   R0,R0,R7
> 
> Invalid pc address bebeec

For reference, Tinct is loaded at 202416B4.


J.


Reply via email to