|
@@ -1475,13 +1475,15 @@ int add_hf_helper(struct sip_msg* msg, str *str1, str *str2,
|
|
len=s0.len;
|
|
len=s0.len;
|
|
if (str2) len+= str2->len + REQ_LINE(msg).uri.len;
|
|
if (str2) len+= str2->len + REQ_LINE(msg).uri.len;
|
|
|
|
|
|
- s = (char*)pkg_malloc(len);
|
|
|
|
- if (!s) {
|
|
|
|
- LM_ERR("no pkg memory left\n");
|
|
|
|
- return -1;
|
|
|
|
|
|
+ if (likely(len>0)){
|
|
|
|
+ s = (char*)pkg_malloc(len);
|
|
|
|
+ if (!s) {
|
|
|
|
+ LM_ERR("no pkg memory left\n");
|
|
|
|
+ return -1;
|
|
|
|
+ }
|
|
|
|
+ memcpy(s, s0.s, s0.len);
|
|
}
|
|
}
|
|
|
|
|
|
- memcpy(s, s0.s, s0.len);
|
|
|
|
if (str2) {
|
|
if (str2) {
|
|
memcpy(s+str1->len, REQ_LINE(msg).uri.s, REQ_LINE(msg).uri.len);
|
|
memcpy(s+str1->len, REQ_LINE(msg).uri.s, REQ_LINE(msg).uri.len);
|
|
memcpy(s+str1->len+REQ_LINE(msg).uri.len, str2->s, str2->len );
|
|
memcpy(s+str1->len+REQ_LINE(msg).uri.len, str2->s, str2->len );
|