[CLEANUP] remove 65 useless NULL checks before free

C specification clearly states that free(NULL) is a no-op.
So remove useless checks before calling free.
diff --git a/src/backend.c b/src/backend.c
index 7fbc720..f134671 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -2078,10 +2078,10 @@
 		}
 		curproxy->lbprm.algo &= ~BE_LB_ALGO;
 		curproxy->lbprm.algo |= BE_LB_ALGO_PH;
-		if (curproxy->url_param_name)
-			free(curproxy->url_param_name);
+
+		free(curproxy->url_param_name);
 		curproxy->url_param_name = strdup(args[1]);
-		curproxy->url_param_len = strlen(args[1]);
+		curproxy->url_param_len  = strlen(args[1]);
 		if (*args[2]) {
 			if (strcmp(args[2], "check_post")) {
 				snprintf(err, errlen, "'balance url_param' only accepts check_post modifier.");
diff --git a/src/cfgparse.c b/src/cfgparse.c
index ea73f53..78783c0 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -715,17 +715,15 @@
 		/* FIXME-20070101: we should do this too at the end of the
 		 * config parsing to free all default values.
 		 */
-		if (defproxy.check_req)     free(defproxy.check_req);
-		if (defproxy.cookie_name)   free(defproxy.cookie_name);
-		if (defproxy.url_param_name) free(defproxy.url_param_name);
-		if (defproxy.capture_name)  free(defproxy.capture_name);
-		if (defproxy.monitor_uri)   free(defproxy.monitor_uri);
-		if (defproxy.defbe.name)    free(defproxy.defbe.name);
+		free(defproxy.check_req);
+		free(defproxy.cookie_name);
+		free(defproxy.url_param_name);
+		free(defproxy.capture_name);
+		free(defproxy.monitor_uri);
+		free(defproxy.defbe.name);
 
-		for (rc = 0; rc < HTTP_ERR_SIZE; rc++) {
-			if (defproxy.errmsg[rc].len)
-				free(defproxy.errmsg[rc].str);
-		}
+		for (rc = 0; rc < HTTP_ERR_SIZE; rc++)
+			free(defproxy.errmsg[rc].str);
 
 		/* we cannot free uri_auth because it might already be used */
 		init_default_instance();
@@ -804,9 +802,7 @@
 			return -1;
 		}
 
-		if (curproxy->monitor_uri != NULL)
-			free(curproxy->monitor_uri);
-
+		free(curproxy->monitor_uri);
 		curproxy->monitor_uri_len = strlen(args[1]);
 		curproxy->monitor_uri = (char *)calloc(1, curproxy->monitor_uri_len + 1);
 		memcpy(curproxy->monitor_uri, args[1], curproxy->monitor_uri_len);
@@ -875,26 +871,17 @@
 	}
 	else if (!strcmp(args[0], "cookie")) {  /* cookie name */
 		int cur_arg;
-		//	  if (curproxy == &defproxy) {
-		//	      Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
-		//	      return -1;
-		//	  }
 
 		if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[0], NULL))
 			return 0;
 
-		if (curproxy->cookie_name != NULL) {
-			//	      Alert("parsing [%s:%d] : cookie name already specified. Continuing.\n",
-			//		    file, linenum);
-			//	      return 0;
-			free(curproxy->cookie_name);
-		}
-	
 		if (*(args[1]) == 0) {
 			Alert("parsing [%s:%d] : '%s' expects <cookie_name> as argument.\n",
 			      file, linenum, args[0]);
 			return -1;
 		}
+
+		free(curproxy->cookie_name);
 		curproxy->cookie_name = strdup(args[1]);
 		curproxy->cookie_len = strlen(curproxy->cookie_name);
 	
@@ -963,27 +950,17 @@
 		}
 	}/* end else if (!strcmp(args[0], "cookie"))  */
 	else if (!strcmp(args[0], "appsession")) {  /* cookie name */
-		//	  if (curproxy == &defproxy) {
-		//	      Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
-		//	      return -1;
-		//	  }
 
 		if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[0], NULL))
 			return 0;
 
-		if (curproxy->appsession_name != NULL) {
-			//	      Alert("parsing [%s:%d] : cookie name already specified. Continuing.\n",
-			//		    file, linenum);
-			//	      return 0;
-			free(curproxy->appsession_name);
-		}
-	
 		if (*(args[5]) == 0) {
 			Alert("parsing [%s:%d] : '%s' expects 'appsession' <cookie_name> 'len' <len> 'timeout' <timeout>.\n",
 			      file, linenum, args[0]);
 			return -1;
 		}
 		have_appsession = 1;
+		free(curproxy->appsession_name);
 		curproxy->appsession_name = strdup(args[1]);
 		curproxy->appsession_name_len = strlen(curproxy->appsession_name);
 		curproxy->appsession_len = atoi(args[3]);
@@ -1005,23 +982,12 @@
 			return 0;
 
 		if (!strcmp(args[1], "cookie")) {  /* name of a cookie to capture */
-			//	  if (curproxy == &defproxy) {
-			//	      Alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
-			//	      return -1;
-			//	  }
-
-			if (curproxy->capture_name != NULL) {
-				//     Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n",
-				//           file, linenum, args[0]);
-				//     return 0;
-				free(curproxy->capture_name);
-			}
-	
 			if (*(args[4]) == 0) {
 				Alert("parsing [%s:%d] : '%s' expects 'cookie' <cookie_name> 'len' <len>.\n",
 				      file, linenum, args[0]);
 				return -1;
 			}
+			free(curproxy->capture_name);
 			curproxy->capture_name = strdup(args[2]);
 			curproxy->capture_namelen = strlen(curproxy->capture_name);
 			curproxy->capture_len = atol(args[4]);
@@ -1378,9 +1344,7 @@
 			if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[1], NULL))
 				return 0;
 			/* use HTTP request to check servers' health */
-			if (curproxy->check_req != NULL) {
-				free(curproxy->check_req);
-			}
+			free(curproxy->check_req);
 			curproxy->options &= ~PR_O_SSL3_CHK;
 			curproxy->options &= ~PR_O_SMTP_CHK;
 			curproxy->options |= PR_O_HTTP_CHK;
@@ -1409,18 +1373,14 @@
 			if (warnifnotcap(curproxy, PR_CAP_BE, file, linenum, args[1], NULL))
 				return 0;
 
-			if (curproxy->check_req != NULL) {
-				free(curproxy->check_req);
-			}
+			free(curproxy->check_req);
 			curproxy->options &= ~PR_O_HTTP_CHK;
 			curproxy->options &= ~PR_O_SMTP_CHK;
 			curproxy->options |= PR_O_SSL3_CHK;
 		}
 		else if (!strcmp(args[1], "smtpchk")) {
 			/* use SMTP request to check servers' health */
-			if (curproxy->check_req != NULL) {
-				free(curproxy->check_req);
-			}
+			free(curproxy->check_req);
 			curproxy->options &= ~PR_O_HTTP_CHK;
 			curproxy->options &= ~PR_O_SSL3_CHK;
 			curproxy->options |= PR_O_SMTP_CHK;
@@ -1501,8 +1461,7 @@
 			Alert("parsing [%s:%d] : '%s' expects a backend name.\n", file, linenum, args[0]);
 			return -1;
 		}
-		if (curproxy->defbe.name)
-			free(curproxy->defbe.name);
+		free(curproxy->defbe.name);
 		curproxy->defbe.name = strdup(args[1]);
 	}
 	else if (!strcmp(args[0], "redispatch") || !strcmp(args[0], "redisp")) {
@@ -2617,8 +2576,7 @@
 
 		for (rc = 0; rc < HTTP_ERR_SIZE; rc++) {
 			if (http_err_codes[rc] == errnum) {
-				if (curproxy->errmsg[rc].str)
-					free(curproxy->errmsg[rc].str);
+				free(curproxy->errmsg[rc].str);
 				curproxy->errmsg[rc].str = err;
 				curproxy->errmsg[rc].len = errlen;
 				break;
@@ -2675,8 +2633,7 @@
 		errnum = atol(args[1]);
 		for (rc = 0; rc < HTTP_ERR_SIZE; rc++) {
 			if (http_err_codes[rc] == errnum) {
-				if (curproxy->errmsg[rc].str)
-					free(curproxy->errmsg[rc].str);
+				free(curproxy->errmsg[rc].str);
 				curproxy->errmsg[rc].str = err;
 				curproxy->errmsg[rc].len = errlen;
 				break;
@@ -2856,14 +2813,12 @@
 		    !strcmp(args[0], "ruleset") ||
 		    !strcmp(args[0], "defaults")) { /* new proxy */
 			confsect = CFG_LISTEN;
-			if (cursection)
-				free(cursection);
+			free(cursection);
 			cursection = strdup(args[0]);
 		}
 		else if (!strcmp(args[0], "global")) { /* global config */
 			confsect = CFG_GLOBAL;
-			if (cursection)
-				free(cursection);
+			free(cursection);
 			cursection = strdup(args[0]);
 		}
 		/* else it's a section keyword */
@@ -2882,8 +2837,7 @@
 			goto err;
 		}
 	}
-	if (cursection)
-		free(cursection);
+	free(cursection);
 	cursection = NULL;
 	fclose(f);
 
@@ -3284,14 +3238,12 @@
 		}
 	}
 
-	if (cursection)
-		free(cursection);
+	free(cursection);
 	cursection = NULL;
 	return 0;
 
  err:
-	if (cursection)
-		free(cursection);
+	free(cursection);
 	cursection = NULL;
 	return -1;
 }
diff --git a/src/ev_epoll.c b/src/ev_epoll.c
index 30862ca..fdb31ec 100644
--- a/src/ev_epoll.c
+++ b/src/ev_epoll.c
@@ -325,14 +325,10 @@
 {
 	fd_flush_changes();
 
-	if (chg_ptr)
-		free(chg_ptr);
-	if (chg_list)
-		free(chg_list);
-	if (fd_evts)
-		free(fd_evts);
-	if (epoll_events)
-		free(epoll_events);
+	free(chg_ptr);
+	free(chg_list);
+	free(fd_evts);
+	free(epoll_events);
 
 	close(epoll_fd);
 	epoll_fd = 0;
diff --git a/src/ev_kqueue.c b/src/ev_kqueue.c
index 1e10b42..f520106 100644
--- a/src/ev_kqueue.c
+++ b/src/ev_kqueue.c
@@ -199,12 +199,9 @@
  */
 REGPRM1 static void _do_term(struct poller *p)
 {
-	if (fd_evts[DIR_WR])
-		free(fd_evts[DIR_WR]);
-	if (fd_evts[DIR_RD])
-		free(fd_evts[DIR_RD]);
-	if (kev)
-		free(kev);
+	free(fd_evts[DIR_WR]);
+	free(fd_evts[DIR_RD]);
+	free(kev);
 	close(kqueue_fd);
 	kqueue_fd = 0;
 
diff --git a/src/ev_poll.c b/src/ev_poll.c
index 4a1eb8b..a86c599 100644
--- a/src/ev_poll.c
+++ b/src/ev_poll.c
@@ -207,12 +207,9 @@
  */
 REGPRM1 static void _do_term(struct poller *p)
 {
-	if (fd_evts[DIR_WR])
-		free(fd_evts[DIR_WR]);
-	if (fd_evts[DIR_RD])
-		free(fd_evts[DIR_RD]);
-	if (poll_events)
-		free(poll_events);
+	free(fd_evts[DIR_WR]);
+	free(fd_evts[DIR_RD]);
+	free(poll_events);
 	p->private = NULL;
 	p->pref = 0;
 }
diff --git a/src/ev_select.c b/src/ev_select.c
index 9075405..7fe7c23 100644
--- a/src/ev_select.c
+++ b/src/ev_select.c
@@ -202,14 +202,10 @@
  */
 REGPRM1 static void _do_term(struct poller *p)
 {
-	if (fd_evts[DIR_WR])
-		free(fd_evts[DIR_WR]);
-	if (fd_evts[DIR_RD])
-		free(fd_evts[DIR_RD]);
-	if (tmp_evts[DIR_WR])
-		free(tmp_evts[DIR_WR]);
-	if (tmp_evts[DIR_RD])
-		free(tmp_evts[DIR_RD]);
+	free(fd_evts[DIR_WR]);
+	free(fd_evts[DIR_RD]);
+	free(tmp_evts[DIR_WR]);
+	free(tmp_evts[DIR_RD]);
 	p->private = NULL;
 	p->pref = 0;
 }
diff --git a/src/ev_sepoll.c b/src/ev_sepoll.c
index 70b1065..9fedbdc 100644
--- a/src/ev_sepoll.c
+++ b/src/ev_sepoll.c
@@ -541,12 +541,9 @@
  */
 REGPRM1 static void _do_term(struct poller *p)
 {
-	if (fd_list)
-		free(fd_list);
-	if (spec_list)
-		free(spec_list);
-	if (epoll_events)
-		free(epoll_events);
+	free(fd_list);
+	free(spec_list);
+	free(epoll_events);
 
 	close(epoll_fd);
 	epoll_fd = 0;
diff --git a/src/haproxy.c b/src/haproxy.c
index 9ef07f2..c936bf0 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -547,8 +547,7 @@
 		global.maxconn = cfg_maxconn;
 
 	if (cfg_pidfile) {
-		if (global.pidfile)
-			free(global.pidfile);
+		free(global.pidfile);
 		global.pidfile = strdup(cfg_pidfile);
 	}
 
@@ -645,41 +644,22 @@
 	int i;
 
 	while (p) {
-		if (p->id)
-			free(p->id);
+		free(p->id);
+		free(p->check_req);
+		free(p->cookie_name);
+		free(p->cookie_domain);
+		free(p->url_param_name);
+		free(p->capture_name);
+		free(p->monitor_uri);
 
-		if (p->check_req)
-			free(p->check_req);
+		for (i = 0; i < HTTP_ERR_SIZE; i++)
+			free(p->errmsg[i].str);
 
-		if (p->cookie_name)
-			free(p->cookie_name);
+		for (i = 0; i < p->nb_reqadd; i++)
+			free(p->req_add[i]);
 
-		if (p->cookie_domain)
-			free(p->cookie_domain);
-
-		if (p->url_param_name)
-			free(p->url_param_name);
-
-		if (p->capture_name)
-			free(p->capture_name);
-
-		if (p->monitor_uri)
-			free(p->monitor_uri);
-
-		for (i = 0; i < HTTP_ERR_SIZE; i++) {
-			if (p->errmsg[i].len)
-				free(p->errmsg[i].str);
-		}
-
-		for (i = 0; i < p->nb_reqadd; i++) {
-			if (p->req_add[i])
-				free(p->req_add[i]);
-		}
-
-		for (i = 0; i < p->nb_rspadd; i++) {
-			if (p->rsp_add[i])
-				free(p->rsp_add[i]);
-		}
+		for (i = 0; i < p->nb_rspadd; i++)
+			free(p->rsp_add[i]);
 
 		list_for_each_entry_safe(cond, condb, &p->block_cond, list) {
 			LIST_DEL(&cond->list);
@@ -743,10 +723,8 @@
 
 		list_for_each_entry_safe(rule, ruleb, &p->switching_rules, list) {
 			LIST_DEL(&rule->list);
-
 			prune_acl_cond(rule->cond);
 			free(rule->cond);
-
 			free(rule);
 		}
 
@@ -758,14 +736,12 @@
 			free(rdr);
 		}
 
-		if (p->appsession_name)
-			free(p->appsession_name);
+		free(p->appsession_name);
 
 		h = p->req_cap;
 		while (h) {
 			h_next = h->next;
-			if (h->name)
-				free(h->name);
+			free(h->name);
 			pool_destroy2(h->pool);
 			free(h);
 			h = h_next;
@@ -774,9 +750,7 @@
 		h = p->rsp_cap;
 		while (h) {
 			h_next = h->next;
-			if (h->name)
-				free(h->name);
-	    
+			free(h->name);
 			pool_destroy2(h->pool);
 			free(h);
 			h = h_next;
@@ -791,12 +765,8 @@
 				task_free(s->check);
 			}
 
-			if (s->id)
-				free(s->id);
-	    
-			if (s->cookie)
-				free(s->cookie);
-	    
+			free(s->id);
+			free(s->cookie);
 			free(s);
 			s = s_next;
 		}/* end while(s) */
@@ -820,36 +790,24 @@
 		uap = ua;
 		ua = ua->next;
 
-		if (uap->uri_prefix)
-			free(uap->uri_prefix);
-
-		if (uap->auth_realm)
-			free(uap->auth_realm);
+		free(uap->uri_prefix);
+		free(uap->auth_realm);
 
 		while (uap->users) {
 			user = uap->users;
 			uap->users = uap->users->next;
-
 			free(user->user_pwd);
 			free(user);
 		}
-
 		free(uap);
 	}
 
 	protocol_unbind_all();
 
-	if (global.chroot)    free(global.chroot);
-	global.chroot = NULL;
-
-	if (global.pidfile)   free(global.pidfile);
-	global.pidfile = NULL;
-    
-	if (fdtab)            free(fdtab);
-	fdtab = NULL;
-
-	if (oldpids)
-		free(oldpids);
+	free(global.chroot);  global.chroot = NULL;
+	free(global.pidfile); global.pidfile = NULL;
+	free(fdtab);          fdtab   = NULL;
+	free(oldpids);        oldpids = NULL;
 
 	pool_destroy2(pool2_session);
 	pool_destroy2(pool2_buffer);
diff --git a/src/uri_auth.c b/src/uri_auth.c
index 8ac618c..67e237a 100644
--- a/src/uri_auth.c
+++ b/src/uri_auth.c
@@ -73,11 +73,9 @@
 	if ((u = stats_check_init_uri_auth(root)) == NULL)
 		goto out_u;
 	
-	if (u->uri_prefix)
-		free(u->uri_prefix);
-
-	u->uri_len = uri_len;
+	free(u->uri_prefix);
 	u->uri_prefix = uri_copy;
+	u->uri_len = uri_len;
 	return u;
 
  out_u:
@@ -101,9 +99,7 @@
 	if ((u = stats_check_init_uri_auth(root)) == NULL)
 		goto out_u;
 	
-	if (u->auth_realm)
-		free(u->auth_realm);
-
+	free(u->auth_realm);
 	u->auth_realm = realm_copy;
 	return u;