Hello
- So I think you have a bug in XaAES if I understand, your cpushi have no effect because kernel do it already but you have to do a cpushi on old tbase, because kernel can't do it - Kernel will be better if father basepage was put when code is loaded and not when it is executed (I think it work, not tested)Olivier Landemarre skrev:HelloI'm currently looking source code in Mint Pexec (k_exec.c), and for me there is a trouble in source codein exec_region() there is cpushi((void *) b->p_tbase, b->p_tlen);That is a good idea except it could be wrong or not enough in some cases. The case is AES (XaAES, MyAES, OAESIS and probably NAES) with the load of accessory (I think this is a bad implementation of load of accessory), they change b->p_tbase to put there own init code so when exec_region is used the cpushi is not on the code of accessory but only at is end (XaAES case) or anywhere. The cpushi() should probably done after load_region() and by security I think it should stay in exec_region() too. But probably the best should not have specific code for accessory, there is only mother basepage to fill NULL when exec() an accessory.I'm wrong?Well.. yes :) The kernel should not contain specific code to makebraindead AES implementations work.
Mint Kernel not permit to have a very clean accessory implementation, thats all, and we make do-it-yourself, really not very goodSo in this respect, you are wrong, there is nothing wrong with current Pexec(). The way the AES wants to modify stuff is its own responsibility, and therefore must take care of such things for itself. XaAES has code for this. And it does NOT belong in the kernel.
My point of view. Best regards Olivier