Go to file
Andy Ross 02b23f3733 arch/posix: Add MemorySanitizer support
Wire this up the same way ASAN works.  Right now it's support only by
recent clang versions (not gcc), and only in 64 bit mode.  But it's
capable of detecting uninitialized data reads, which ASAN is not.

This support is wired into the sys_heap (and thus k_heap/k_malloc)
layers, allowing detection of heap misuse like use-after-free.  Note
that there is one false negative lurking: due to complexity, in the
case where a sys_heap_realloc() call is able to shrink memory in
place, the now-unused suffix is not marked uninitialized immediately,
making it impossible to detect use-after-free of those particular
bytes.  But the system will recover cleanly the next time the memory
gets allocated.

Also no attempt was made to integrate this handling into the newlib or
picolibc allocators, though that should hopefully be possible via
similar means.

Signed-off-by: Andy Ross <andyross@google.com>
2022-08-19 08:30:01 +02:00
.github templates: bug: ask if the bug is a regression 2022-08-17 12:09:54 +02:00
arch arch/posix: Add MemorySanitizer support 2022-08-19 08:30:01 +02:00
boards boards: qemu_x86_tiny: enable support for coverage 2022-08-18 17:23:18 +02:00
cmake cmake: Update CONFIG_ASAN support 2022-08-19 08:30:01 +02:00
doc doc: build: dts: Remove refs to label property 2022-08-18 19:50:39 -05:00
drivers drivers: can: rename can_state enumerations 2022-08-18 21:41:11 +00:00
dts dts: bindings: gpio-leds: move to led folder 2022-08-18 17:13:17 -07:00
include/zephyr cmake: Update CONFIG_ASAN support 2022-08-19 08:30:01 +02:00
kernel kernel: Skip bss clear on native_posix 2022-08-19 08:30:01 +02:00
lib arch/posix: Add MemorySanitizer support 2022-08-19 08:30:01 +02:00
misc
modules drivers: can: rename can_state enumerations 2022-08-18 21:41:11 +00:00
samples drivers: can: rename can_state enumerations 2022-08-18 21:41:11 +00:00
scripts west: blobs: Ensure that folder exists before fetching 2022-08-18 15:25:43 +00:00
share cmake: sysbuild: signing support 2022-08-03 16:05:07 +02:00
soc cmake: Update CONFIG_ASAN support 2022-08-19 08:30:01 +02:00
submanifests
subsys arch/posix: Add MemorySanitizer support 2022-08-19 08:30:01 +02:00
tests tests: sensor: sbs_gauge: Remove label property 2022-08-18 15:19:40 -07:00
.checkpatch.conf
.clang-format clang-format: do not merge blocks/functions into single line 2022-07-15 19:18:28 -04:00
.codecov.yml
.editorconfig
.gitattributes
.gitignore .gitignore: exempt scripts/build from ignore 2022-07-30 08:29:29 -05:00
.gitlint
.mailmap
CMakeLists.txt cmake: Set GCC min-pagesize parameter to 0 2022-08-16 11:13:40 +02:00
CODE_OF_CONDUCT.md
CODEOWNERS drivers: ipm: esp32: added IPM driver 2022-08-16 18:06:02 +02:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr kconfig: Move Kconfig.dts sourcing earlier 2022-08-17 08:06:55 +00:00
LICENSE
MAINTAINERS.yml net: socketcan: rename SocketCAN header from socket_can.h to socketcan.h 2022-08-18 10:19:29 +02:00
README.rst readme: Update stale documentation links 2022-06-06 12:07:12 +02:00
VERSION version: Fix the EXTRAVERSION field 2022-06-05 20:11:17 +02:00
version.h.in
west.yml west.yml: hal_nxp: manifest update 2022-08-17 15:58:12 -05:00
zephyr-env.cmd
zephyr-env.sh

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/_static/images/logo-readme.svg">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI nightly build results.
* **Chat**: Real-time chat happens in Zephyr's Discord Server. Use
  this `Discord Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Discord Invite: https://chat.zephyrproject.org
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help