diff options
author | Frederic Berat <fberat@de.adit-jv.com> | 2017-01-17 11:37:27 +0100 |
---|---|---|
committer | Christoph Lipka <clipka@jp.adit-jv.com> | 2017-02-01 12:14:55 +0900 |
commit | 0ce6e68d8835b13aa6be52ffdf2d81e1170a3834 (patch) | |
tree | a61dd79be59d2346be0c3614ed1f062f1ca147e2 /src/daemon/dlt_daemon_event_handler.h | |
parent | 03dce720baf91ff67eb82431f8d6ad24b4f4d657 (diff) | |
download | DLT-daemon-0ce6e68d8835b13aa6be52ffdf2d81e1170a3834.tar.gz |
dlt-daemon: Fix use after free potential issue
In dlt_daemon_send_all_multiple, if the connection was broken, we closed
it before getting the next available connection. This must be avoided by
having a temporary next pointer.
The same kind of problem is valid for pointers coming from the epoll
interface. The kernel can provide back connection pointer that are not
valid any longer. Therefore, we need to use an ID instead of the pointer
value to retrieve the connections.
Signed-off-by: Frederic Berat <fberat@de.adit-jv.com>
Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
Diffstat (limited to 'src/daemon/dlt_daemon_event_handler.h')
-rw-r--r-- | src/daemon/dlt_daemon_event_handler.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/daemon/dlt_daemon_event_handler.h b/src/daemon/dlt_daemon_event_handler.h index ea88da9..dc91b89 100644 --- a/src/daemon/dlt_daemon_event_handler.h +++ b/src/daemon/dlt_daemon_event_handler.h @@ -39,6 +39,8 @@ int dlt_daemon_prepare_event_handling(DltEventHandler *); int dlt_daemon_handle_event(DltEventHandler *, DltDaemon *, DltDaemonLocal *); +DltConnection *dlt_event_handler_find_connection_by_id(DltEventHandler *, + DltConnectionId); DltConnection *dlt_event_handler_find_connection(DltEventHandler *, int); |