[PATCH 4/5] logging: remove workaround now that _output() has been reworked

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

pablo at gnumonks.org pablo at gnumonks.org
Tue May 3 20:40:43 UTC 2011


From: Pablo Neira Ayuso <pablo at gnumonks.org>

This patch removes a workaround to fix some strange memory corruption
now that _output() has been completely reworked and we make use of
snprintf appropriately.
---
 src/logging.c |   15 +++------------
 1 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/src/logging.c b/src/logging.c
index 526b39e..6797afc 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -221,19 +221,10 @@ static void _logp(unsigned int subsys, int level, char *file, int line,
 		else if (osmo_log_info->filter_fn)
 			output = osmo_log_info->filter_fn(&log_context,
 						       tar);
+		if (!output)
+			continue;
 
-		if (output) {
-			/* FIXME: copying the va_list is an ugly
-			 * workaround against a bug hidden somewhere in
-			 * _output.  If we do not copy here, the first
-			 * call to _output() will corrupt the va_list
-			 * contents, and any further _output() calls
-			 * with the same va_list will segfault */
-			va_list bp;
-			va_copy(bp, ap);
-			_output(tar, subsys, level, file, line, cont, format, bp);
-			va_end(bp);
-		}
+		_output(tar, subsys, level, file, line, cont, format, ap);
 	}
 }
 
-- 
1.7.2.3





More information about the OpenBSC mailing list