From 52a8375025cb266a43f937198569e8947a930ead Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 21 Feb 2019 16:37:10 +0100 Subject: select: Call log_reset_context() before calling file descriptor callbacks Make sure to clear any log context before processing the next incoming message as part of some file descriptor callback. This effectively prevents "context leaking" from processing of one message into processing of the next message as part of one iteration through the list of file descriptors here. Change-Id: I3644c7bc1a9cec5858eb0faf94efc8c3ba7f5d8d Closes: OS#3813 --- src/select.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/select.c') diff --git a/src/select.c b/src/select.c index b594ca55..4e7be354 100644 --- a/src/select.c +++ b/src/select.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "../config.h" @@ -214,6 +215,11 @@ restart: if (flags) { work = 1; + /* make sure to clear any log context before processing the next incoming message + * as part of some file descriptor callback. This effectively prevents "context + * leaking" from processing of one message into processing of the next message as part + * of one iteration through the list of file descriptors here. See OS#3813 */ + log_reset_context(); ufd->cb(ufd, flags); } /* ugly, ugly hack. If more than one filedescriptor was -- cgit v1.2.3