$NetBSD: patch-ae,v 1.6 2012/12/30 05:38:55 dholland Exp $ - use required standard headers - make sure index() is available - don't provide own declarations of standard functions - fix path to sendmail (although, is this really adequately MI?) - buffer length fix --- metamail/splitmail.c.orig 1994-01-31 22:23:14.000000000 +0000 +++ metamail/splitmail.c @@ -21,14 +21,20 @@ WITHOUT ANY EXPRESS OR IMPLIED WARRANTIE ******************************************************* */ #include +#include +#include #include #include #include #include #include +#ifndef index +#define index(a, b) strchr(a, b) +#endif + #define MINCHUNKSIZE 20000 /* Better be enough to hold the headers, or we die! */ -extern char *malloc(), *index(), *getmyname(); +extern char *getmyname(); #ifdef AMIGA #define Prototype extern @@ -40,9 +46,8 @@ extern char *malloc(), *index(), *getmyn #define NORMALDELIVERYCMD NormalDeliveryCmd #define VERBOSEDELIVERYCMD VerboseDeliveryCmd #else -extern char *getenv(); -#define NORMALDELIVERYCMD "/usr/lib/sendmail -t -oi" -#define VERBOSEDELIVERYCMD "/usr/lib/sendmail -t -v -oi" +#define NORMALDELIVERYCMD "/usr/sbin/sendmail -t -oi" +#define VERBOSEDELIVERYCMD "/usr/sbin/sendmail -t -v -oi" #endif usageexit() { @@ -194,7 +199,7 @@ char **argv; s = endofheader(from); /* would be index(from, '\n'), but need to check for continuation lines */ *s = '\0'; - if (ShareThisHeader(from, SubjectBuf, &OrigID)) { + if (ShareThisHeader(from, SubjectBuf, sizeof(SubjectBuf), &OrigID)) { strcat(SharedHeaders, from); strcat(SharedHeaders, "\n"); } @@ -339,9 +344,10 @@ static char *SharedHeads[] = { NULL }; -ShareThisHeader(s, SubjectBuf, OrigID) +ShareThisHeader(s, SubjectBuf, size, OrigID) char *s; char *SubjectBuf; +size_t size; char **OrigID; { int i; @@ -361,7 +367,8 @@ char **OrigID; } if (!ULstrcmp(s, "subject")) { *colon = ':'; - strcpy(SubjectBuf, ++colon); + strncpy(SubjectBuf, ++colon, size); + SubjectBuf[size - 1] = '\0'; return(0); } if (!ULstrcmp(s, "content-type")) {