This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Level to do such a modification...
> I am working on gcc 4.0.0. I want to use gcc to intercept each call to
> read, and taint the data readed in. For example:
> transform
> read(fd, buf, size)
> to
> read(fd, buf, size)
> if(is_socket(fd))
> taint(buf, size)
> So, what is the best suitable level to do this modification in gcc? My
> own thought is in finish_function, before calling c_genericize,as I
> discovered that in c front-end, there's no GENERIC tree... In
> c_genericize, it directly calls gimplify_function_tree.
You don't need to modify the compiler. Just write your own read
function that taints the data and wrap it around calls to read using
ld's --wrap option. See the linker documentation for more details.
Cheers, Ben