From: Ondrej Zajicek Date: Thu, 8 Jun 2023 03:10:05 +0000 (+0200) Subject: BMP: Ensure that bmp_fire_tx() does nothing when not up X-Git-Tag: v2.14~86^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43d41d8449a4eb196422d6d309dbea998d920541;p=thirdparty%2Fbird.git BMP: Ensure that bmp_fire_tx() does nothing when not up --- diff --git a/proto/bmp/bmp.c b/proto/bmp/bmp.c index aed9d9d6a..c530b3d47 100644 --- a/proto/bmp/bmp.c +++ b/proto/bmp/bmp.c @@ -273,7 +273,10 @@ static void bmp_fire_tx(void *p_) { struct bmp_proto *p = p_; - byte *buf = p->sk->tbuf; + + if (!p->started) + return; + IF_COND_TRUE_PRINT_ERR_MSG_AND_RETURN_OPT_VAL( EMPTY_LIST(p->tx_queue), "Called BMP TX event handler when there is not any data to send" @@ -290,7 +293,7 @@ bmp_fire_tx(void *p_) } size_t data_size = tx_data->data_size; - memcpy(buf, tx_data->data, tx_data->data_size); + memcpy(p->sk->tbuf, tx_data->data, data_size); mb_free(tx_data->data); rem_node((node *) tx_data); mb_free(tx_data);