| .. _protection_tests: |
| |
| Protection tests |
| ################################# |
| |
| Overview |
| ******** |
| This test case verifies that protection is provided |
| against the following security issues: |
| |
| * Write to read-only data. |
| * Write to text. |
| * Execute from data. |
| * Execute from stack. |
| * Execute from heap. |
| |
| Building and Running |
| ******************** |
| |
| This project can be built and executed as follows: |
| |
| .. code-block:: console |
| |
| $ cd tests/protection |
| $ make BOARD=<insert your board here> |
| |
| Connect the board to your host computer using the USB port. |
| Flash the generated zephyr.bin on the board. |
| Reset the board. |
| |
| Sample Output |
| ============= |
| |
| .. code-block:: console |
| |
| ***** BOOTING ZEPHYR OS v1.8.99 - BUILD: Jun 19 2017 12:44:27 ***** |
| Running test suite test_protection |
| tc_start() - write_ro |
| trying to write to rodata at 0x00003124 |
| ***** BUS FAULT ***** |
| Executing thread ID (thread): 0x200001bc |
| Faulting instruction address: 0x88c |
| Imprecise data bus error |
| Caught system error -- reason 0 |
| =================================================================== |
| PASS - write_ro. |
| tc_start() - write_text |
| trying to write to text at 0x000006c0 |
| ***** BUS FAULT ***** |
| Executing thread ID (thread): 0x200001bc |
| Faulting instruction address: 0xd60 |
| Imprecise data bus error |
| Caught system error -- reason 0 |
| =================================================================== |
| PASS - write_text. |
| tc_start() - exec_data |
| trying to call code written to 0x2000041d |
| ***** BUS FAULT ***** |
| Executing thread ID (thread): 0x200001bc |
| Faulting instruction address: 0x2000041c |
| Imprecise data bus error |
| Caught system error -- reason 0 |
| =================================================================== |
| PASS - exec_data. |
| tc_start() - exec_stack |
| trying to call code written to 0x20000929 |
| ***** BUS FAULT ***** |
| Executing thread ID (thread): 0x200001bc |
| Faulting instruction address: 0x20000928 |
| Imprecise data bus error |
| Caught system error -- reason 0 |
| =================================================================== |
| PASS - exec_stack. |
| tc_start() - exec_heap |
| trying to call code written to 0x20000455 |
| ***** BUS FAULT ***** |
| Executing thread ID (thread): 0x200001bc |
| Faulting instruction address: 0x20000454 |
| Imprecise data bus error |
| Caught system error -- reason 0 |
| =================================================================== |
| PASS - exec_heap. |
| =================================================================== |
| PROJECT EXECUTION SUCCESSFUL |