diff --git a/ChangeLog b/ChangeLog index 16ba88d56..ecd84bde2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-03-06 Paulo Andrade + + * lib/lightning.c: Make data and code buffer readonly. + 2013-02-20 Paulo Andrade * doc/body.texi: Fool proof validate the examples of what diff --git a/lib/lightning.c b/lib/lightning.c index a9b77f630..d0697438f 100644 --- a/lib/lightning.c +++ b/lib/lightning.c @@ -1376,6 +1376,7 @@ _jit_emit(jit_state_t *_jit) jit_node_t *node; jit_int32_t mult; size_t length; + int result; if (_jit->function) jit_epilog(); @@ -1430,6 +1431,11 @@ _jit_emit(jit_state_t *_jit) _jit->done = 1; jit_annotate(); + result = mprotect(_jit->data.ptr, _jit->data.length, PROT_READ); + assert(result == 0); + result = mprotect(_jit->code.ptr, _jit->code.length, PROT_READ | PROT_EXEC); + assert(result == 0); + return (code); }