Let's introduce a mechanism by which libsmpp34-using applications can
override the memory allocator functions. This allows us e.g. in the
Osmocom context to use talloc which aids us in debugging memory leaks.
Closes: OS#3913
Change-Id: I3656117115e89638c093bfbcbc4369ce302f7a94
The code in OCTET8 implementation assumes the len is placed inside the
byte preceding the memory buffer, which is true for the defined cases.
However, it creates a compilation warning. Better pass the value
directly from the struct field rather than playing addr games. this way
we also assert we require to explicitly pass the len.
Fixes lots of warning like the one below:
/home/pespin/dev/sysmocom/bin/../git/libsmpp34/src/smpp34_unpack.c: In function ‘smpp34_u
npack’:
/home/pespin/dev/sysmocom/bin/../git/libsmpp34/src/smpp34_unpack.c:147:14: warning: array
subscript is above array bounds [-Warray-bounds]
lenval = *((inst par) - 1);\
^~~~~~~~~~~~~~~~~
/home/pespin/dev/sysmocom/bin/../git/libsmpp34/def_frame/submit_sm.frame:18:2: note: in e
xpansion of macro ‘OCTET8’
OCTET8( instancia, short_message, 254 );
^~~~~~
Change-Id: Id110f4e977c3becdb44cf5492c372e530ea51551
Fixes compilation warning below:
/home/pespin/dev/sysmocom/bin/../git/libsmpp34/src/smpp34_unpack.c: In function ‘smpp34_unpack’:
/home/pespin/dev/sysmocom/bin/../git/libsmpp34/src/smpp34_unpack.c:232:18: warning: variable ‘l’ set but not used [
-Wunused-but-set-variable]
uint32_t l;
Change-Id: I75baa65b575deec1cc040490f2e76ebb54e46ca7