From: Joshua Colp Date: Fri, 14 Jun 2013 21:57:31 +0000 (+0000) Subject: Ensure that the number of added contacts never goes below 0. X-Git-Tag: 13.0.0-beta1~1663 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=671d7e62c799240989b00ebdd6b60a1dc37d019d;p=thirdparty%2Fasterisk.git Ensure that the number of added contacts never goes below 0. This can happen when a REGISTER request is removing a contact. (closes issue ASTERISK-21911) Reported by: mdavenport git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@391902 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_sip_registrar.c b/res/res_sip_registrar.c index 0cc5821ee0..c3315d0bec 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;