Harald Welte has uploaded this change for review. ( 
https://gerrit.osmocom.org/10097


Change subject: Make viterbi decoder deterministic in case of bit errors / too 
few symbols
......................................................................

Make viterbi decoder deterministic in case of bit errors / too few symbols

Running tetra-rx on a capture with lots of bit errors is not
deterministic. Investigation with Valgrind shows various errors about
uninitialised values in libosmocore's viterbi decoder.

The cause appears to lie in @lower_mac/viterbi.c@. The only function
there allocates space for 864 symbols and then fills it with the symbols
received. However, sym_count is sometimes less than 864, leaving the
rest of the array uninitialized.

Initializing it with @int8_t vit_inp[864*4] = {0};@ fixes the problem.

Change-Id: Ib745c387e21fb81afef69efcf7e46d5d49331c8f
Fixes: OS#3410
---
M src/lower_mac/viterbi.c
1 file changed, 1 insertion(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-tetra refs/changes/97/10097/1

diff --git a/src/lower_mac/viterbi.c b/src/lower_mac/viterbi.c
index 86aff77..b6f12c1 100644
--- a/src/lower_mac/viterbi.c
+++ b/src/lower_mac/viterbi.c
@@ -5,7 +5,7 @@

 void viterbi_dec_sb1_wrapper(const uint8_t *in, uint8_t *out, unsigned int 
sym_count)
 {
-       int8_t vit_inp[864*4];
+       int8_t vit_inp[864*4] = {0};
        int i;

        for (i = 0; i < sym_count*4; i++) {

--
To view, visit https://gerrit.osmocom.org/10097
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-tetra
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib745c387e21fb81afef69efcf7e46d5d49331c8f
Gerrit-Change-Number: 10097
Gerrit-PatchSet: 1
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>

Reply via email to