summaryrefslogtreecommitdiff
blob: a4434ebf08bb0c306c7e26a847e6c2a8607e649b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Compensate for platforms that don't have strndup, like Solaris

--- configure.in
+++ configure.in
@@ -30,7 +30,7 @@
 dnl Checks for library functions.
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS(gethostname socket strdup strstr)
+AC_CHECK_FUNCS(gethostname socket strdup strndup strstr)
 
 dnl Check for optional features
 AC_ARG_ENABLE(logfile, 
--- ssmtp.c
+++ ssmtp.c
@@ -842,7 +842,16 @@
 	if (!rest) {
 		return NULL;
 	}
+#ifdef HAVE_STRNDUP
 	tok=strndup(*s,rest-(*s));
+#else
+	{
+		size_t len = rest - (*s);
+		tok = malloc(sizeof(char) * (len + 1));
+		memcpy(tok, *s, len);
+		tok[len] = '\0';
+	}
+#endif
 	if (!tok) {
 		die("firsttok() -- strndup() failed");
 	}