r1984 - in branches/1.1: . bin/varnishd

des at projects.linpro.no des at projects.linpro.no
Sun Sep 23 15:01:21 CEST 2007


Author: des
Date: 2007-09-23 15:01:21 +0200 (Sun, 23 Sep 2007)
New Revision: 1984

Modified:
   branches/1.1/
   branches/1.1/bin/varnishd/mgt_param.c
Log:
Merged revisions 1796 via svnmerge from 
svn+ssh://projects.linpro.no/svn/varnish/trunk/varnish-cache

........
  r1796 | phk | 2007-08-05 21:52:23 +0200 (Sun, 05 Aug 2007) | 2 lines
  
  Introduce a "replace()" function to replace a malloc'ed string.
........



Property changes on: branches/1.1
___________________________________________________________________
Name: svnmerge-integrated
   - /trunk/varnish-cache:1-1722,1727-1729,1738,1743-1777,1779-1795,1797-1798,1800-1808,1810-1815,1817,1819,1823,1831-1838,1846,1853-1855,1857-1859,1862,1865,1867-1868,1871,1873-1880,1884,1896,1898,1902-1905,1907,1909,1912-1916,1920-1928,1935-1939,1941-1949
   + /trunk/varnish-cache:1-1722,1727-1729,1738,1743-1777,1779-1798,1800-1808,1810-1815,1817,1819,1823,1831-1838,1846,1853-1855,1857-1859,1862,1865,1867-1868,1871,1873-1880,1884,1896,1898,1902-1905,1907,1909,1912-1916,1920-1928,1935-1939,1941-1949

Modified: branches/1.1/bin/varnishd/mgt_param.c
===================================================================
--- branches/1.1/bin/varnishd/mgt_param.c	2007-09-23 12:46:52 UTC (rev 1983)
+++ branches/1.1/bin/varnishd/mgt_param.c	2007-09-23 13:01:21 UTC (rev 1984)
@@ -67,6 +67,18 @@
 
 static struct params master;
 
+/* XXX: Far too generic to live here ? */
+static void
+replace(char **p, const char *q)
+{
+
+	AN(*q);
+	if (*p != NULL)
+		free(*p);
+	*p = strdup(q);
+	AN(*p);
+}
+
 /*--------------------------------------------------------------------*/
 
 static void
@@ -172,22 +184,15 @@
 			cli_result(cli, CLIS_PARAM);
 			return;
 		}
-		if (master.user)
-			free(master.user);
-		master.user = strdup(pw->pw_name);
-		AN(master.user);
+		replace(&master.user, pw->pw_name);
 		master.uid = pw->pw_uid;
 		master.gid = pw->pw_gid;
 
 		/* set group to user's primary group */
-		if (master.group)
-			free(master.group);
 		if ((gr = getgrgid(pw->pw_gid)) != NULL &&
 		    (gr = getgrnam(gr->gr_name)) != NULL &&
-		    gr->gr_gid == pw->pw_gid) {
-			master.group = strdup(gr->gr_name);
-			AN(master.group);
-		}
+		    gr->gr_gid == pw->pw_gid) 
+			replace(&master.group, gr->gr_name);
 	} else if (master.user) {
 		cli_out(cli, "%s (%d)", master.user, (int)master.uid);
 	} else {
@@ -221,10 +226,7 @@
 			cli_result(cli, CLIS_PARAM);
 			return;
 		}
-		if (master.group)
-			free(master.group);
-		master.group = strdup(gr->gr_name);
-		AN(master.group);
+		replace(&master.group, gr->gr_name);
 		master.gid = gr->gr_gid;
 	} else if (master.group) {
 		cli_out(cli, "%s (%d)", master.group, (int)master.gid);
@@ -456,9 +458,7 @@
 		return;
 	}
 
-	free(master.listen_address);
-	master.listen_address = strdup(arg);
-	AN(master.listen_address);
+	replace(&master.listen_address, arg);
 
 	clean_listen_sock_head(&heritage.socks);
 	heritage.nsocks = 0;




More information about the varnish-commit mailing list