[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