Go to file
Anatoly Burakov 615fcf55d2 ipc: fix access after async request failure
Previous fix for rte_panic has moved setting of alarm before
sending the message. This means that whether we send a message,
the alarm would still trigger. The comment noted that cleanup
would happen in the alarm handler, but that's not what actually
happened - instead, in the event of failed send we freed the
memory in-place, before putting the request on the queue.

This works OK when the message is sent, but when sending the
message fails, the alarm would still trigger with a pointer
argument that points to non-existent memory, and cause
memory corruption.

There probably is a "proper" fix for this issue, with correct
handling of sent vs. unsent requests, however it would be
simpler just to sacrifice the sent request in the (extremely
unlikely) event of alarm set failing. The other process would
still send a response, but it will be ignored by the sender.

Fixes: 45e5f49e87 ("ipc: remove panic in async request")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
2018-11-23 01:43:24 +01:00
app app/pdump: fix port id storage size 2018-11-18 22:32:47 +01:00
buildtools mk: allow renaming of build directories 2018-11-14 01:46:00 +01:00
config build: establish an invariant machine type 2018-11-18 15:30:58 +01:00
devtools devtools: fix regex in symbol addition check 2018-11-18 23:38:26 +01:00
doc doc: update timestamp validity for latency measurement 2018-11-19 01:35:17 +01:00
drivers net/bonding: fix possible silent failure in configuration 2018-11-16 18:27:55 +01:00
examples examples/ipv4_multicast: fix leak of cloned packets 2018-11-18 22:55:52 +01:00
kernel kni: fix build on Linux < 3.14 2018-10-27 00:18:06 +02:00
lib ipc: fix access after async request failure 2018-11-23 01:43:24 +01:00
license license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
mk mk: allow renaming of build directories 2018-11-14 01:46:00 +01:00
pkg version: 18.08.0 2018-08-09 23:11:26 +02:00
test test: release ring resources after PMD perf test 2018-11-18 23:23:22 +01:00
usertools usertools: skip empty categories in devices status 2018-11-23 01:43:20 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add compression driver and ISA-L PMD guides 2018-05-10 17:46:20 +01:00
GNUmakefile move kernel modules directories 2018-03-21 23:04:21 +01:00
MAINTAINERS security: remove experimental tag 2018-11-18 22:31:30 +01:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt build: add option to override drivers install directory 2018-10-27 23:22:21 +02:00
meson.build version: 18.11-rc4 2018-11-19 01:40:54 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org