diff --git a/res/res_sip_registrar.c b/res/res_sip_registrar.c index 0cc5821ee0a9c98961f408563836ca80a284b1ae..c3315d0becda2c2979290c49e1f7bf5db36a5896 100644 --- a/res/res_sip_registrar.c +++ b/res/res_sip_registrar.c @@ -259,7 +259,7 @@ static pj_bool_t registrar_on_rx_request(struct pjsip_rx_data *rdata) return PJ_TRUE; } - if (((added - deleted) + (!aor->remove_existing ? ao2_container_count(contacts) : 0)) > aor->max_contacts) { + if ((MAX(added - deleted, 0) + (!aor->remove_existing ? ao2_container_count(contacts) : 0)) > aor->max_contacts) { /* Enforce the maximum number of contacts */ pjsip_endpt_respond_stateless(ast_sip_get_pjsip_endpoint(), rdata, 403, NULL, NULL, NULL); return PJ_TRUE;