From 26cbd459fcc7cd7bed8256a5ad078c177a7a7fe2 Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Tue, 7 Jan 2014 13:39:24 +0100 Subject: sms: Fix gsm_7bit legacy functions return value The legacy 7bit conversion functions (those without the '_n_' in the name) gave wrong return values on 64 bit platforms due to unproper signed/unsigned conversions and the usage of SIZE_MAX. This patch fixes this by using a smaller max size (see GSM_7BIT_LEGACY_MAX_BUFFER_SIZE, currently set to 64k) for the legacy wrappers and by using unsigned int for max_septets. In addition, there are tests now that check the return values of legacy encoding and decoding. Sponsored-by: On-Waves ehf --- tests/sms/sms_test.ok | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tests/sms/sms_test.ok') diff --git a/tests/sms/sms_test.ok b/tests/sms/sms_test.ok index a71567de..fa536eaa 100644 --- a/tests/sms/sms_test.ok +++ b/tests/sms/sms_test.ok @@ -1,11 +1,19 @@ SMS testing +Legacy encode case 0: septet length 9 (expected 9) Encode case 0: Octet length 8 (expected 8, computed 8), septet length 9 (expected 9) +Legacy encode case 1: septet length 41 (expected 41) Encode case 1: Octet length 36 (expected 36, computed 36), septet length 41 (expected 41) +Legacy encode case 2: septet length 39 (expected 39) Encode case 2: Octet length 35 (expected 35, computed 35), septet length 39 (expected 39) +Legacy encode case 3: septet length 40 (expected 40) Encode case 3: Octet length 35 (expected 35, computed 35), septet length 40 (expected 40) +Legacy decode case 0: return value 9 (expected 9) Decode case 0: return value 9 (expected 9) +Legacy decode case 1: return value 41 (expected 41) Decode case 1: return value 40 (expected 40) +Legacy decode case 2: return value 39 (expected 39) Decode case 2: return value 31 (expected 31) +Legacy decode case 3: return value 40 (expected 40) Decode case 3: return value 32 (expected 32) Decode case 4: return value 153 (expected 153) Decode case 5: return value 40 (expected 40) -- cgit v1.2.3