X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=ie.cpp;h=1e18b7741b676cb67731e8691cb89ff887522a5a;hp=c4033c409a1fc1fefdac4788d8999bf090d12da4;hb=fb6e219eda69fe19fdd16457570dd51d07099320;hpb=53b5521b3413c195a8353e262895842d2d84f11e diff --git a/ie.cpp b/ie.cpp index c4033c4..1e18b77 100644 --- a/ie.cpp +++ b/ie.cpp @@ -314,7 +314,7 @@ void Pdss1::dec_ie_call_id(struct l3_msg *l3m, unsigned char *callid, int *calli /* IE_CALLED_PN */ -void Pdss1::enc_ie_called_pn(struct l3_msg *l3m, int type, int plan, unsigned char *number) +void Pdss1::enc_ie_called_pn(struct l3_msg *l3m, int type, int plan, unsigned char *number, int number_len) { unsigned char p[256]; int l; @@ -337,13 +337,15 @@ void Pdss1::enc_ie_called_pn(struct l3_msg *l3m, int type, int plan, unsigned ch add_trace("called_pn", "type", "%d", type); add_trace("called_pn", "plan", "%d", plan); - add_trace("called_pn", "number", "%s", number); + UNCPY((char *)p, (char *)number, number_len); + p[number_len] = '\0'; + add_trace("called_pn", "number", "%s", p); - l = 1+strlen((char *)number); + l = 1+number_len; p[0] = IE_CALLED_PN; p[1] = l; p[2] = 0x80 + (type<<4) + plan; - UNCPY((char *)p+3, (char *)number, strlen((char *)number)); + UNCPY((char *)p+3, (char *)number, number_len); add_layer3_ie(l3m, p[0], p[1], p+2); }