aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--def_frame/deliver_sm.frame2
-rw-r--r--def_frame/replace_sm.frame2
-rw-r--r--def_frame/submit_multi.frame2
-rw-r--r--def_frame/submit_sm.frame2
-rw-r--r--src/smpp34_dumpPdu.c3
-rw-r--r--src/smpp34_pack.c3
-rw-r--r--src/smpp34_structs.h2
-rw-r--r--src/smpp34_unpack.c3
8 files changed, 8 insertions, 11 deletions
diff --git a/def_frame/deliver_sm.frame b/def_frame/deliver_sm.frame
index 2306f19..6cbd90d 100644
--- a/def_frame/deliver_sm.frame
+++ b/def_frame/deliver_sm.frame
@@ -15,5 +15,5 @@ C_OCTET( instancia, validity_period, 1 );
U08( instancia, data_coding, valueDec_08 );
U08( instancia, sm_default_msg_id, valueDec_08 );
U08( instancia, sm_length, valueDec_08 );
- OCTET8( instancia, short_message, 254 );
+ OCTET8( instancia, short_message, 254, instancia sm_length );
TLV( instancia, tlv, do_tlv_deliver_sm );
diff --git a/def_frame/replace_sm.frame b/def_frame/replace_sm.frame
index a35187d..641207e 100644
--- a/def_frame/replace_sm.frame
+++ b/def_frame/replace_sm.frame
@@ -7,4 +7,4 @@ C_OCTET( instancia, validity_period, 17 );
U08( instancia, registered_delivery, valueDec_08 );
U08( instancia, sm_default_msg_id, valueDec_08 );
U08( instancia, sm_length, valueDec_08 );
- OCTET8( instancia, short_message, 254 );
+ OCTET8( instancia, short_message, 254, instancia sm_length );
diff --git a/def_frame/submit_multi.frame b/def_frame/submit_multi.frame
index 0c5fb31..e58fd36 100644
--- a/def_frame/submit_multi.frame
+++ b/def_frame/submit_multi.frame
@@ -14,5 +14,5 @@ C_OCTET( instancia, validity_period, 17 );
U08( instancia, data_coding, valueDec_08 );
U08( instancia, sm_default_msg_id, valueDec_08 );
U08( instancia, sm_length, valueDec_08 );
- OCTET8( instancia, short_message, 254 );
+ OCTET8( instancia, short_message, 254, instancia sm_length );
TLV( instancia, tlv, do_tlv_submit_multi );
diff --git a/def_frame/submit_sm.frame b/def_frame/submit_sm.frame
index 0a54421..bf8e560 100644
--- a/def_frame/submit_sm.frame
+++ b/def_frame/submit_sm.frame
@@ -15,5 +15,5 @@ C_OCTET( instancia, validity_period, 17 );
U08( instancia, data_coding, valueDec_08 );
U08( instancia, sm_default_msg_id, valueDec_08 );
U08( instancia, sm_length, valueDec_08 );
- OCTET8( instancia, short_message, 254 );
+ OCTET8( instancia, short_message, 254, instancia sm_length );
TLV( instancia, tlv, do_tlv_submit_sm );
diff --git a/src/smpp34_dumpPdu.c b/src/smpp34_dumpPdu.c
index 89d6e53..688f4ea 100644
--- a/src/smpp34_dumpPdu.c
+++ b/src/smpp34_dumpPdu.c
@@ -136,11 +136,10 @@ smpp34_dumpPdu(uint32_t type, uint8_t *dest, int size_dest, void* tt)
_op(inst, par, size )\
}
-#define OCTET8( inst, par, size ){\
+#define OCTET8( inst, par, size, lenval ){\
int i = 0;\
uint8_t *p = l_dest;\
int dummy = 0;\
- lenval = *((inst par) - 1);\
if( (lenval + 33) >= left ){\
PUTLOG("[%s:%s(%s)]", par, inst par, \
"Value length exceed buffer length");\
diff --git a/src/smpp34_pack.c b/src/smpp34_pack.c
index b36e7a4..ef1c599 100644
--- a/src/smpp34_pack.c
+++ b/src/smpp34_pack.c
@@ -139,8 +139,7 @@ smpp34_pack(uint32_t type, uint8_t *ptrBuf, int ptrSize, int *ptrLen, void* tt)
}\
};
-#define OCTET8( inst, par, sizeval ){\
- lenval = *((inst par) - 1);\
+#define OCTET8( inst, par, sizeval, lenval ){\
if( lenval >= left ){\
PUTLOG("[leng %s:%d(%s)]", par, lenval,\
"Value length exceed buffer length");\
diff --git a/src/smpp34_structs.h b/src/smpp34_structs.h
index 71d22cd..7c83df8 100644
--- a/src/smpp34_structs.h
+++ b/src/smpp34_structs.h
@@ -75,7 +75,7 @@ typedef struct alert_notification_t alert_notification_t;
#define O_C_OCTET( inst, par, size ) uint8_t par[ size ];
#define C_OCTET( inst, par, size ) uint8_t par[ size ];
-#define OCTET8( inst, par, size ) uint8_t par[ size ];
+#define OCTET8( inst, par, size, lenval ) uint8_t par[ size ];
#define OCTET16( inst, par, size ) uint8_t par[ size ];
#define TLV( inst, par, do_tlv ) tlv_t *par;
diff --git a/src/smpp34_unpack.c b/src/smpp34_unpack.c
index 3d8b0f8..749a037 100644
--- a/src/smpp34_unpack.c
+++ b/src/smpp34_unpack.c
@@ -143,8 +143,7 @@ smpp34_unpack(uint32_t type, void* tt, const uint8_t *ptrBuf, int ptrLen)
};\
}
-#define OCTET8( inst, par, size ){\
- lenval = *((inst par) - 1);\
+#define OCTET8( inst, par, size, lenval ){\
if( lenval > left ){\
PUTLOG("[leng %s:%d(%s)]", par, lenval,\
"Value length exceed buffer length");\