From 8610ee8956d6a585106087d7defb4a015b90b8cf Mon Sep 17 00:00:00 2001 From: lwvmobile Date: Sun, 9 Jun 2024 05:47:04 -0400 Subject: [PATCH] M17: Fix Bugs With SRC/DST Values in Meta Extended CSD; --- src/m17.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/m17.c b/src/m17.c index a1ecf72..793a4a9 100644 --- a/src/m17.c +++ b/src/m17.c @@ -3178,8 +3178,9 @@ void decodeM17PKT(dsd_opts * opts, dsd_state * state, uint8_t * input, int len) //Extended Call Sign Data else if (protocol == 92) { - unsigned long long int src = ((unsigned long long int)input[1] << 40ULL) + ((unsigned long long int)input[2] << 32ULL) + (input[3] << 24ULL) + (input[4] << 16ULL) + (input[5] << 8ULL) + (input[6] << 0ULL); - unsigned long long int dst = ((unsigned long long int)input[7] << 40ULL) + ((unsigned long long int)input[8] << 32ULL) + (input[9] << 24ULL) + (input[10] << 16ULL) + (input[11] << 8ULL) + (input[12] << 0ULL); + //NOTE: If doing a shift addition like this, make sure ALL values have (unsigned long long int) in front of it, not just the ones that 'needed' it + unsigned long long int src = ((unsigned long long int)input[1] << 40ULL) + ((unsigned long long int)input[2] << 32ULL) + ((unsigned long long int)input[3] << 24ULL) + ((unsigned long long int)input[4] << 16ULL) + ((unsigned long long int)input[5] << 8ULL) + ((unsigned long long int)input[6] << 0ULL); + unsigned long long int dst = ((unsigned long long int)input[7] << 40ULL) + ((unsigned long long int)input[8] << 32ULL) + ((unsigned long long int)input[9] << 24ULL) + ((unsigned long long int)input[10] << 16ULL) + ((unsigned long long int)input[11] << 8ULL) + ((unsigned long long int)input[12] << 0ULL); fprintf (stderr, " CF1: "); //Originator for (i = 0; i < 9; i++) {