... | ... |
@@ -2992,12 +2992,14 @@ char* create_via_hf(unsigned int *len, |
2992 | 2992 |
/* params so far + ';rport' + '\0' */ |
2993 | 2993 |
via = (char*)pkg_malloc(extra_params.len+RPORT_LEN); |
2994 | 2994 |
if(via==0) { |
2995 |
- PKG_MEM_ERROR; |
|
2995 |
+ PKG_MEM_ERROR; |
|
2996 | 2996 |
if (extra_params.s) pkg_free(extra_params.s); |
2997 | 2997 |
return 0; |
2998 | 2998 |
} |
2999 |
- if(extra_params.len!=0) { |
|
2999 |
+ if(extra_params.s!=NULL && extra_params.len>0) { |
|
3000 | 3000 |
memcpy(via, extra_params.s, extra_params.len); |
3001 |
+ } |
|
3002 |
+ if(extra_params.s!=NULL) { |
|
3001 | 3003 |
pkg_free(extra_params.s); |
3002 | 3004 |
} |
3003 | 3005 |
memcpy(via + extra_params.len, RPORT, RPORT_LEN-1); |
... | ... |
@@ -3018,8 +3020,10 @@ char* create_via_hf(unsigned int *len, |
3018 | 3020 |
if (extra_params.s) pkg_free(extra_params.s); |
3019 | 3021 |
return 0; |
3020 | 3022 |
} |
3021 |
- if(extra_params.len != 0) { |
|
3023 |
+ if(extra_params.s!=NULL && extra_params.len>0) { |
|
3022 | 3024 |
memcpy(via, extra_params.s, extra_params.len); |
3025 |
+ } |
|
3026 |
+ if(extra_params.s!=NULL) { |
|
3023 | 3027 |
pkg_free(extra_params.s); |
3024 | 3028 |
} |
3025 | 3029 |
memcpy(via + extra_params.len, sbuf, slen); |
... | ... |
@@ -3038,12 +3042,14 @@ char* create_via_hf(unsigned int *len, |
3038 | 3042 |
if(xparams.len>0) { |
3039 | 3043 |
via = (char*)pkg_malloc(extra_params.len+xparams.len+2); |
3040 | 3044 |
if(via==0) { |
3041 |
- PKG_MEM_ERROR; |
|
3045 |
+ PKG_MEM_ERROR; |
|
3042 | 3046 |
if (extra_params.s) pkg_free(extra_params.s); |
3043 | 3047 |
return 0; |
3044 | 3048 |
} |
3045 |
- if(extra_params.len != 0) { |
|
3049 |
+ if(extra_params.s!=NULL && extra_params.len>0) { |
|
3046 | 3050 |
memcpy(via, extra_params.s, extra_params.len); |
3051 |
+ } |
|
3052 |
+ if(extra_params.s!=NULL) { |
|
3047 | 3053 |
pkg_free(extra_params.s); |
3048 | 3054 |
} |
3049 | 3055 |
/* add ';' between via parameters */ |