Hello!
Just noticed new signal based mechanism does not work on
glibc based systems, as glibc restarts interrupted syscalls by default,
so we never see abort_vm=1 condition. Attached patch fixes this and
buffer overflows in user (we'll need to make user suid in future
anyway, if we want ordinar users to access it, ain't we?)
Also I suggest to add this piece to kernel/include/host-linux.c:
#if LINUX_VERSION_CODE >= VERSION_CODE(2,3,26)
# define vm_offset vm_pgoff
#endif
this will allow compilation of freemware module on systems with kernel 2.3.2[678]
too. Unfortunatelly enough in 2.3.29 proc_register/proc_unregister
disappeared too, I'm thinking about this right now.
Here is the patch:
begin 644 freemware_user.diff.gz
M'XL("(:L/S@"`V9R965M=V%R95]U<V5R+F1I9F8`A51M;]HP$/Y,?L4-J6W2
M&!IH:8&H$FCK-B1*I<*D2=T6F<0)5D."$H?25?WO.SM)`RMM_<$OYWOQ/?><
M&XT&^`ECRP>:L),L98F:FFYM2@5,XC6T+Z!E]:V+?KL%K5ZOIYFF69DT'^+D
M_DV[=M_J]:W";C"`QFF'=,'$N74*@X$&&IP<PY0'$0UA02,O9`D<GVB0"BJX
M"SP20.=Q(ISU$B[!LK7&.N9>(2L,=$,S]TBE+3<T>-),P)$^<.$N0.>&E-1<
MFC*8CKZ-)K,^K!)4]O7ZG\^X96G*O&;NC$<!L`US,\'CZ%=4-^QYPNB]O>5@
M.+Z]KCS,^)+%F0#4<A?,VS7QF$^S4%3:1>(''K@T"Q:"[(]*N&'G23QK<MZ&
MI&5K4JK`/>N1<S`[9^1"8:NR%DGF"@6GFN:9;^<W[H(BU"N1$#@.,I8*!_?V
MCA47F$VRQA>J3?&&TB4/J"L?"&G@X.[RZ7`'?S+Y,1X3BTR'SLWD:OK]9J8D
MST6(/*0;1X)MA".@V-F2$G+(ZBWIQEFR99P\$GGO\\#Q/:+R8`24(?4\63`"
M'A6T.J&*>U\=YVE:'FR%5.^<M"PP6U9;KA*L6A4,4:4BYOHA38+U'?]]=_H;
M\8=:44?(AZK_D7_4UQHUA,1=/>KE&WG(G(@N&=GU8$J]Z"-%TNYTW@P7;(?+
M(?PXVCMZ[P;S,!@@:>=9X,3192N'KMUMRQ9N=[NXE#23WX'.0M]!?ADO-?0+
MGJ?"8PGRK#YE0I$[6RE&R4:AOL"6QPY(&:+BI9+NY25Z:BC&J3;1\VXENVW^
M6D<VY&LELU#*.5OZ.LRYJYBY5TDY^T]+Y89429G0#U5G$+"0<_POBWU="8Q2
M39V:')N5AAEKBK6#>2+!B@S+?F,B[S5]-!M=7]TZMU?#,8'2>1%7_9_(V!Y^
MH%876[U$7XX5(APG>IW'K@CKAEW=!+&(P0WCE&'W%/)GK;$76ER=+U_';X%:
M79==ZH/^J?R-C"KFJ\H/I0YX&0-\#-NX;*6^#JP[?DP'5C?\J0I?_`+-%XTM
.$5\!!OX'/)M@`K`&```/
`
end
Bye,
Oleg