[hamradio-commits] [gnss-sdr] 172/251: More array index out of bound protections for viterbi decoder

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Wed Sep 2 00:22:47 UTC 2015


This is an automated email from the git hooks/post-receive script.

carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.

commit d9da6e1e608c5af7fcc5499b6d328ba80edadaac
Author: Javier <jarribas at cttc.es>
Date:   Fri Jun 12 16:10:59 2015 +0200

    More array index out of bound protections for viterbi decoder
---
 .../telemetry_decoder/libs/viterbi_decoder.cc      | 29 ++++++++++++++++++----
 1 file changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc b/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc
index 91c9121..4d31ec0 100644
--- a/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc
+++ b/src/algorithms/telemetry_decoder/libs/viterbi_decoder.cc
@@ -578,12 +578,22 @@ int Viterbi_Decoder::Prev::get_anchestor_state_of_current_state(int current_stat
 int Viterbi_Decoder::Prev::get_bit_of_current_state(int current_state)
 {
     //std::cout << "get prev bit  : for state " << current_state << " at time " << t << ", the send bit is " << bit[current_state] << std::endl;
-    return bit[current_state];
+    if (num_states>current_state)
+	{
+    	return bit[current_state];
+	}else{
+		return 0;
+	}
 }
 
 float Viterbi_Decoder::Prev::get_metric_of_current_state(int current_state)
 {
-    return metric[current_state];
+    if (num_states>current_state)
+	{
+    	return metric[current_state];
+	}else{
+		return 0;
+	}
 }
 
 int Viterbi_Decoder::Prev::get_t()
@@ -593,15 +603,24 @@ int Viterbi_Decoder::Prev::get_t()
 
 void Viterbi_Decoder::Prev::set_current_state_as_ancestor_of_next_state(int next_state, int current_state)
 {
-    state[next_state] = current_state;
+    if (num_states>next_state)
+	{
+    	state[next_state] = current_state;
+	}
 }
 
 void Viterbi_Decoder::Prev::set_decoded_bit_for_next_state(int next_state, int bit)
 {
-    this->bit[next_state] = bit;
+    if (num_states>next_state)
+	{
+    	this->bit[next_state] = bit;
+	}
 }
 
 void Viterbi_Decoder::Prev::set_survivor_branch_metric_of_next_state(int next_state, float metric)
 {
-    this->metric[next_state] = metric;
+    if (num_states>next_state)
+	{
+    	this->metric[next_state] = metric;
+	}
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git



More information about the pkg-hamradio-commits mailing list