Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Go to file
Andy Ross d0490fe9f9 lib/os/mempool: Fix corruption case with block splitting
The block_fits() predicate was borked.  It would check that a block
fits within the bounds of the whole heap.  But that's not enough:
because of alignment changes between levels the sub-blocks may be
adjusted forward.  It needs to fit inside the PARENT block that it was
split from.

What could happen at runtime is that the last subblocks of a
misaligned parent block would overlap memory from subsequent blocks,
or even run off the end of the heap.  That's bad.

Change the API of block_fits() a little so it can extract the parent
region and do this properly.

Fixes #15279.  Passes test introduced in #16728 to demonstrate what
seems like the same issue.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2019-06-25 18:51:08 -07:00
.github/ISSUE_TEMPLATE
.known-issues doc: introduce final structure 2019-02-05 07:04:40 -05:00
arch arch/x86: remove CONFIG_X86_FIXED_IRQ_MAPPING support 2019-06-25 08:06:43 -04:00
boards boards: shields: x_nucleo_iks01a2: doc: update dead URL link 2019-06-25 10:44:30 -05:00
cmake cmake: Set NO_QEMU_SERIAL_BT_SERVER when CONFIG_BT_NO_DRIVER is set 2019-06-24 22:36:59 +02:00
doc scripts/dts: Remove DT_CHOSEN generation 2019-06-25 08:43:58 -05:00
drivers drivers: modem: modem_receiver.h: move header from /include/ 2019-06-25 15:27:00 -04:00
dts drivers/interrupt_controller/mvic.c: remove MVIC interrupt controller 2019-06-25 08:06:43 -04:00
ext drivers: clock_control: mcux_scg: add NXP MCUX SCG clock control driver 2019-06-24 14:33:46 -05:00
include drivers: modem: modem_receiver.h: move header from /include/ 2019-06-25 15:27:00 -04:00
kernel tests: userspace: cover missing/bad syscalls 2019-06-25 17:28:19 -07:00
lib lib/os/mempool: Fix corruption case with block splitting 2019-06-25 18:51:08 -07:00
misc license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
modules ext: hal: st: move to modules 2019-06-18 13:08:07 -04:00
samples Bluetooth: central_hr: use new API to get value handle 2019-06-25 18:24:32 +02:00
scripts scripts: remove runner related cruft 2019-06-26 01:25:54 +02:00
soc include: move interrupt controller headers to interrupt_controller/ 2019-06-25 15:27:00 -04:00
subsys include: move system timer headers to include/drivers/timer/ 2019-06-25 15:27:00 -04:00
tests tests: userspace: cover z_object_recycle() 2019-06-25 17:28:19 -07:00
.checkpatch.conf scripts/checkpatch.pl: fix root dir detection and enable it 2019-05-22 12:40:20 -04:00
.clang-format
.codecov.yml
.editorconfig editorconfig: Set insert_final_newline true 2019-04-10 14:15:38 +02:00
.gitattributes
.gitignore
.gitlint gitlint: match max title length restriction with checkpatch 2019-05-29 14:43:16 -04:00
.mailmap
.shippable.yml ci: move to new docker with new SDK 2019-06-14 09:26:40 -04:00
.uncrustify.cfg
CMakeLists.txt docs: fix misspelling across the tree 2019-06-19 15:34:13 -05:00
CODEOWNERS drivers/interrupt_controller/mvic.c: remove MVIC interrupt controller 2019-06-25 08:06:43 -04:00
CODE_OF_CONDUCT.md
CONTRIBUTING.rst doc: Fixed a link in CONTRIBUTING.rst 2019-02-28 12:46:04 -08:00
Kconfig
Kconfig.zephyr docs: fix misspelling across the tree 2019-06-19 15:34:13 -05:00
LICENSE
Makefile doc: add clean target to Makefile 2019-02-05 16:58:14 -05:00
README.rst doc: add references to builds mailing list 2019-05-21 21:40:20 -04:00
VERSION release: Post-release patch level update 2019-04-16 15:50:31 -05:00
version.h.in cmake: explain BUILD_VERSION and KERNEL_VERSION_* 2019-05-09 11:52:05 +02:00
west.yml ext: hal: st: move to modules 2019-06-18 13:08:07 -04:00
zephyr-env.cmd
zephyr-env.sh env: ignore unset var 2019-05-20 09:26:31 -04:00

README.rst

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/images/Zephyr-Project.png">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <img
   src="https://api.shippable.com/projects/58ffb2b8baa5e307002e1d79/badge?branch=master">


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-M,
Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and a large number of
`supported boards`_.

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

.. start_include_here

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.

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

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

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://zephyrproject.org/developers/#downloads
* **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
  (shippable) nightly build results.
* **Chat**: Zephyr's Slack workspace is https://zephyrproject.slack.com.  Use
  this `Slack 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

.. _Slack Invite: https://tinyurl.com/yarkuemx
.. _supported boards: http://docs.zephyrproject.org/latest/boards
.. _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/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/guides/getting-help.html