Change in osmo-pcu[master]: csn1: Fix readIndex pointer change in CSN_VARIABLE_ARRAY

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Tue Nov 24 10:51:48 UTC 2020


pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21305 )

Change subject: csn1: Fix readIndex pointer change in CSN_VARIABLE_ARRAY
......................................................................

csn1: Fix readIndex pointer change in CSN_VARIABLE_ARRAY

There's actually 3 errors:
* Its value should be updated, not the pointer itself
* Value should be increased, not decreased
* bitvec_read_field() API is already advancing it, no need to do it

Fixes: OS#4838
Change-Id: I009abc373794e148091e637ffee80c6461960945
---
M src/csn1.c
M tests/rlcmac/RLCMACTest.cpp
M tests/rlcmac/RLCMACTest.err
M tests/rlcmac/RLCMACTest.ok
4 files changed, 11 insertions(+), 1 deletion(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, approved



diff --git a/src/csn1.c b/src/csn1.c
index fa29e27..da67494 100644
--- a/src/csn1.c
+++ b/src/csn1.c
@@ -1216,7 +1216,6 @@
 
           while (count > 0)
           {
-            readIndex -= 8;
 	    *pui8 = bitvec_read_field(vector, readIndex, 8);
             LOGPC(DCSN1, LOGL_DEBUG, "%s = %u | ", pDescr->sz , (unsigned)*pui8);
             pui8++;
diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp
index f1b6508..140b2f2 100644
--- a/tests/rlcmac/RLCMACTest.cpp
+++ b/tests/rlcmac/RLCMACTest.cpp
@@ -110,6 +110,7 @@
 	"4913e00850884013a8048b2b2b2b2b2b2b2b2b2b2b2b2b", // Polling Request (malformed)
 	"412430007fffffffffffffffefd19c7ba12b2b2b2b2b2b", // Packet Uplink Ack Nack?
 	"41942b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b", // System Info 13?
+	"40883c1493120000000012002b2b2b2b2b2b2b2b2b2b2b", // Pkt Paging Request (OS#4838)
 	};
 
 	int testDataSize = sizeof(testData)/sizeof(testData[0]);
diff --git a/tests/rlcmac/RLCMACTest.err b/tests/rlcmac/RLCMACTest.err
index 661f37b..8855110 100644
--- a/tests/rlcmac/RLCMACTest.err
+++ b/tests/rlcmac/RLCMACTest.err
@@ -18,6 +18,8 @@
 DCSN1 INFO csnStreamEncoder (type: Pkt UL ACK/NACK (9)): MESSAGE_TYPE = 9 | PAGE_MODE = 0 | 0x00 = 0 | UPLINK_TFI = 24 | u.PU_AckNack_GPRS_Struct = 0 |  : u.PU_AckNack_GPRS_Struct | CHANNEL_CODING_COMMAND = 0 |  : Ack_Nack_Description | FINAL_ACK_INDICATION = 0 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 255 | RECEIVED_BLOCK_BITMAP[1] = 255 | RECEIVED_BLOCK_BITMAP[2] = 255 | RECEIVED_BLOCK_BITMAP[3] = 255 | RECEIVED_BLOCK_BITMAP[4] = 255 | RECEIVED_BLOCK_BITMAP[5] = 255 | RECEIVED_BLOCK_BITMAP[6] = 255 | RECEIVED_BLOCK_BITMAP[7] = 255 |  : End Ack_Nack_Description | Common_Uplink_Ack_Nack_Data.Exist_CONTENTION_RESOLUTION_TLLI = 1 | Common_Uplink_Ack_Nack_Data.CONTENTION_RESOLUTION_TLLI = 2123162589 | Common_Uplink_Ack_Nack_Data.Exist_Packet_Timing_Advance = 0 | Common_Uplink_Ack_Nack_Data.Exist_Power_Control_Parameters = 0 | Common_Uplink_Ack_Nack_Data.Exist_Extension_Bits = 0 | u.FixedAllocationDummy = 0 | u.FixedAllocationDummy = 1 | Exist_AdditionsR99 = 0 |  : End u.PU_AckNack_GPRS_Struct | Padding = 43|43|43|43|43|43|
 DCSN1 INFO csnStreamDecoder (type: Pkt DL Dummy Ctrl Block (37): MESSAGE_TYPE = 37 | PAGE_MODE = 0 | Exist_PERSISTENCE_LEVEL = 0 | Padding = 43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|
 DCSN1 INFO csnStreamEncoder (type: Pkt DL Dummy Ctrl Block (37)): MESSAGE_TYPE = 37 | PAGE_MODE = 0 | Exist_PERSISTENCE_LEVEL = 0 | Padding = 43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|
+DCSN1 INFO csnStreamDecoder (type: Pkt Paging Request (34): MESSAGE_TYPE = 34 | PAGE_MODE = 0 | Exist_PERSISTENCE_LEVEL = 0 | Exist_NLN = 0 | Repeated_Page_info = Exist | u.Page_req_RR = 1 |  : u.Page_req_RR | u.Mobile_Identity = 1 |  : u.Mobile_Identity | Length_of_Mobile_Identity_contents = 8 | Mobile_Identity = 41 | Mobile_Identity = 38 | Mobile_Identity = 36 | Mobile_Identity = 0 | Mobile_Identity = 0 | Mobile_Identity = 0 | Mobile_Identity = 0 | Mobile_Identity = 36 |  : End u.Mobile_Identity | CHANNEL_NEEDED = 0 | Exist_eMLPP_PRIORITY = 0 |  : End u.Page_req_RR | Repeated_Page_info = 0 | Padding = 0|43|43|43|43|43|43|43|43|43|43|43|
+DCSN1 INFO csnStreamEncoder (type: Pkt Paging Request (34)): MESSAGE_TYPE = 34 | PAGE_MODE = 0 | Exist_PERSISTENCE_LEVEL = 0 | Exist_NLN = 0 | Repeated_Page_info = 1 | u.Page_req_RR = 1 |  : u.Page_req_RR | u.Mobile_Identity = 1 |  : u.Mobile_Identity | Length_of_Mobile_Identity_contents = 8 | Mobile_Identity = 41 | Mobile_Identity = 38 | Mobile_Identity = 36 | Mobile_Identity = 0 | Mobile_Identity = 0 | Mobile_Identity = 0 | Mobile_Identity = 0 | Mobile_Identity = 36 |  : End u.Mobile_Identity | CHANNEL_NEEDED = 0 | Exist_eMLPP_PRIORITY = 0 |  : End u.Page_req_RR | Repeated_Page_info = 0 | Padding = 3|43|43|43|43|43|43|43|43|43|43|43|
 DCSN1 INFO csnStreamDecoder (type: Pkt UL Dummy Ctrl Block (3)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 3 | TLLI = 0x87987447 | Padding = 1|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|
 DCSN1 INFO csnStreamEncoder (type: Pkt UL Dummy Ctrl Block (3)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 3 | TLLI = 2274915399 | Padding = 1|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|
 DCSN1 INFO csnStreamDecoder (type: Pkt DL ACK/NACK (2)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 2 | DOWNLINK_TFI = 28 |  : Ack_Nack_Description | FINAL_ACK_INDICATION = 0 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 0 | RECEIVED_BLOCK_BITMAP[1] = 0 | RECEIVED_BLOCK_BITMAP[2] = 0 | RECEIVED_BLOCK_BITMAP[3] = 0 | RECEIVED_BLOCK_BITMAP[4] = 0 | RECEIVED_BLOCK_BITMAP[5] = 0 | RECEIVED_BLOCK_BITMAP[6] = 0 | RECEIVED_BLOCK_BITMAP[7] = 1 | : End Ack_Nack_Description | Exist_Channel_Request_Description = 0 |  : Channel_Quality_Report | C_VALUE = 18 | RXQUAL = 0 | SIGN_VAR = 7 | Slot[0].Exist = 0 | Slot[1].Exist = 0 | Slot[2].Exist = 0 | Slot[3].Exist = 0 | Slot[4].Exist = 0 | Slot[5].Exist = 0 | Slot[6].Exist = 0 | Slot[7].Exist = 0 | : End Channel_Quality_Report | Exist_AdditionsR99 = 0 | Padding = 3|43|43|43|43|43|43|43|43|
diff --git a/tests/rlcmac/RLCMACTest.ok b/tests/rlcmac/RLCMACTest.ok
index 861b1b9..437cd75 100644
--- a/tests/rlcmac/RLCMACTest.ok
+++ b/tests/rlcmac/RLCMACTest.ok
@@ -80,6 +80,14 @@
 vector1 = 41 94 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
 vector2 = 41 94 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
 vector1 == vector2 : TRUE
+vector1 = 40883c1493120000000012002b2b2b2b2b2b2b2b2b2b2b
+=========Start DECODE===========
++++++++++Finish DECODE (0)++++++++++
+=========Start ENCODE=============
++++++++++Finish ENCODE (0)+++++++++++
+vector1 = 40 88 3c 14 93 12 00 00 00 00 12 00 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
+vector2 = 40 88 3c 14 93 12 00 00 00 00 12 01 95 95 95 95 95 95 95 95 95 95 95 
+vector1 == vector2 : FALSE
 *** testRlcMacUplink ***
  UPLINK 
 vector1 = 400e1e61d11d2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21305
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I009abc373794e148091e637ffee80c6461960945
Gerrit-Change-Number: 21305
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201124/dcaac735/attachment.htm>


More information about the gerrit-log mailing list