Module: sip-router Branch: andrei/switch Commit: 5b37abcf81bade64b5bb8bc07ad4352e96c9d7b6 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=5b37abcf...
Author: Andrei Pelinescu-Onciul andrei@iptel.org Committer: Andrei Pelinescu-Onciul andrei@iptel.org Date: Thu Feb 19 21:51:43 2009 +0100
rvalues: fix rval_new( empty string )
- rval_new(RV_STR, empty string, ...) did not set properly the string pointer
---
rvalue.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/rvalue.c b/rvalue.c index 4c7472d..8bd0aa2 100644 --- a/rvalue.c +++ b/rvalue.c @@ -233,13 +233,17 @@ struct rvalue* rval_new(enum rval_type t, union rval_val* v, int extra_size) { struct rvalue* rv; - if (t==RV_STR && v && v->s.len) + if (t==RV_STR && v && v->s.s) return rval_new_str(&v->s, extra_size); rv=rval_new_empty(extra_size); if (likely(rv)){ rv->type=t; - if (likely(v)){ + if (likely(v && t!=RV_STR)){ rv->v=*v; + }else if (t==RV_STR){ + rv->v.s.s=&rv->buf[0]; + rv->v.s.len=0; + if (likely(extra_size)) rv->v.s.s[0]=0; }else memset (&rv->v, 0, sizeof(rv->v)); }