| 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"); |
| } |