blob: a4434ebf08bb0c306c7e26a847e6c2a8607e649b [file] [log] [blame]
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");
}