[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] Probably bad implementation in Pexec()
- 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:
I'm currently looking source code in Mint Pexec (k_exec.c), and for
me there is a trouble in source code
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
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.
Well.. yes :) The kernel should not contain specific code to make
braindead 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 good
So 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.