Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/lib/librumphijack



On Feb 8, 10:30pm, pooka%cs.hut.fi@localhost (Antti Kantee) wrote:
-- Subject: Re: CVS commit: src/lib/librumphijack

| On Tue Feb 08 2011 at 15:03:11 -0500, Christos Zoulas wrote:
| > [explanation]
| > 
| > In your c code then in hijack.c you need to define the body of _hijack_read.
| > You also end up needing to define the bodies of readlink and getcwd, but
| > that is easily done...
| > 
| > I hope that helps. The trick to understand here is that you can only do
| > the ssp check in the inline function, because if you move the check in
| > the source file, you've lost the information from the caller about the
| > passed object.
| > 
| > Please let me know if you have any more questions.
| 
| E2MAGIC ;)
| 
| Ok, so it was originally correct (or my code was broken on -current)
| since hijack needs _sys_read or otherwise the #ifndef __ssp_weak_name
| branch causes the 3rd party caller to have a reference to _sys_read
| instead of read.  Sorry for bursting out, been working on too many
| branches and this stuff is fairly hard to tune to work flawlessly ...
| (I still need to solve compat ... *hrr*)

Yes, it is too complex. I understand. And I see the problem that callers
of the rump code calling _sys_read instead of hijack read.

| But, since the real caller already does the ssp check, why does it need
| to be performed again in librumphijack where we, as you state above,
| no longer have the necessary information.

It does not do the check in hijack.c (there was one revision that did,
but it has been corrected since). Still the problem remains, how do
we stack the calls to insert the ssp check at the top level, without
resorting to rtld tricks?

christos


Home | Main Index | Thread Index | Old Index