diff --git a/modules/sipmsgops/sipmsgops.c b/modules/sipmsgops/sipmsgops.c index acdbf55cbb7..a34c684e7e3 100644 --- a/modules/sipmsgops/sipmsgops.c +++ b/modules/sipmsgops/sipmsgops.c @@ -1604,12 +1604,10 @@ static int sip_validate_hdrs(struct sip_msg *msg) } memset(disp, 0, sizeof(struct disposition)); - switch (parse_disposition(&(hf->body), disp)) { - case -2: - free_disposition(&disp); - case -1: - LM_DBG("cannot parse disposition\n"); - goto failed; + if (parse_disposition(&(hf->body), disp) < 0) { + free_disposition(&disp); + LM_DBG("cannot parse disposition\n"); + goto failed; } break;