[master] 8f389e5 Eliminate strndup() from here, strdup() is just fine.

Poul-Henning Kamp phk at varnish-cache.org
Thu May 12 14:19:18 CEST 2011


commit 8f389e554f1b41c4788c018d2ac874c91a8379f2
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Thu May 12 12:16:26 2011 +0000

    Eliminate strndup() from here, strdup() is just fine.

diff --git a/lib/libvarnish/vss.c b/lib/libvarnish/vss.c
index 18ac41d..43f3e4a 100644
--- a/lib/libvarnish/vss.c
+++ b/lib/libvarnish/vss.c
@@ -43,10 +43,6 @@
 #include <string.h>
 #include <unistd.h>
 
-#ifndef HAVE_STRNDUP
-#include "compat/strndup.h"
-#endif
-
 #include "libvarnish.h"
 #include "vss.h"
 
@@ -87,8 +83,9 @@ VSS_parse(const char *str, char **addr, char **port)
 		    p == str + 1 ||
 		    (p[1] != '\0' && p[1] != ':'))
 			return (-1);
-		*addr = strndup(str + 1, p - (str + 1));
+		*addr = strdup(str + 1);
 		XXXAN(*addr);
+		(*addr)[p - (str + 1)] = '\0';
 		if (p[1] == ':') {
 			*port = strdup(p + 2);
 			XXXAN(*port);
@@ -103,8 +100,9 @@ VSS_parse(const char *str, char **addr, char **port)
 			XXXAN(*addr);
 		} else {
 			if (p > str) {
-				*addr = strndup(str, p - str);
+				*addr = strdup(str);
 				XXXAN(*addr);
+				(*addr)[p - str] = '\0';
 			}
 			*port = strdup(p + 1);
 			XXXAN(*port);



More information about the varnish-commit mailing list