summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mail-mta/ssmtp/files/ssmtp-2.62-strndup.patch')
-rw-r--r--mail-mta/ssmtp/files/ssmtp-2.62-strndup.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/mail-mta/ssmtp/files/ssmtp-2.62-strndup.patch b/mail-mta/ssmtp/files/ssmtp-2.62-strndup.patch
new file mode 100644
index 000000000000..a4434ebf08bb
--- /dev/null
+++ b/mail-mta/ssmtp/files/ssmtp-2.62-strndup.patch
@@ -0,0 +1,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");
+ }