Fixed possible small memory leak in PJSUA registration

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@769 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 5578e7f..597451c 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -487,6 +487,8 @@
 {
     pjsua_acc *acc;
     pj_str_t contact;
+    char contact_buf[512];
+    pj_pool_t *pool;
     pj_status_t status;
 
     acc = &pjsua_var.acc[acc_id];
@@ -496,6 +498,12 @@
 	return PJ_SUCCESS;
     }
 
+    /* Destroy existing session, if any */
+    if (acc->regc) {
+	pjsip_regc_destroy(acc->regc);
+	acc->regc = NULL;
+    }
+
     /* initialize SIP registration if registrar is configured */
 
     status = pjsip_regc_create( pjsua_var.endpt, 
@@ -507,7 +515,8 @@
 	return status;
     }
 
-    status = pjsua_acc_create_uac_contact( pjsua_var.pool, &contact,
+    pool = pj_pool_create_on_buf(NULL, contact_buf, sizeof(contact_buf));
+    status = pjsua_acc_create_uac_contact( pool, &contact,
 					   acc_id, &acc->cfg.reg_uri);
     if (status != PJ_SUCCESS) {
 	pjsua_perror(THIS_FILE, "Unable to generate suitable Contact header"
@@ -562,7 +571,6 @@
 
     if (renew) {
 	if (pjsua_var.acc[acc_id].regc == NULL) {
-	    // Need route set.
 	    status = pjsua_regc_init(acc_id);
 	    if (status != PJ_SUCCESS) {
 		pjsua_perror(THIS_FILE, "Unable to create registration",