lapd_dl_flush_hist(): Don't flush a non-existant history
If lapd_dl_flush_hist() is called after lapd_dl_exit(), dl->tx_hist has
already been free'd and set to NULL. Check for this before attempting
to de-reference a NULL pointer.
This bug breaks OpenBSC with any E1 based BTSs using DAHDI.
Change-Id: I117ba3445fa5e8097e21c11c5a6337de6ba46c7d
Related: OS#1760
diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c
index c59b075..fd1e709 100644
--- a/src/gsm/lapd_core.c
+++ b/src/gsm/lapd_core.c
@@ -158,6 +158,9 @@
{
unsigned int i;
+ if (!dl->range_hist)
+ return;
+
for (i = 0; i < dl->range_hist; i++) {
if (dl->tx_hist[i].msg) {
msgb_free(dl->tx_hist[i].msg);