*** milter-greylist.c.orig	Mon Oct  5 06:18:34 2015
--- milter-greylist.c	Tue Jan 19 08:20:35 2016
***************
*** 2808,2816 ****
  	char *outstr;
  	size_t outmaxlen = QSTRLEN;
  	char *tmpstr;
  	char *tmpstrp;
! 	char *last;
  	char *ptok;
  	int fstr_len;	/* format string length, minus the % (eg: %mr -> 2) */
  	int skip_until_brace_close = 0;
  
--- 2808,2816 ----
  	char *outstr;
  	size_t outmaxlen = QSTRLEN;
  	char *tmpstr;
  	char *tmpstrp;
! 	char *last = NULL;
  	char *ptok;
  	int fstr_len;	/* format string length, minus the % (eg: %mr -> 2) */
  	int skip_until_brace_close = 0;
  
***************
*** 2988,2996 ****
  			(void)memset(revipstr, '.', len);
  			revipstr[len] = '\0';
  
  			/* XXX only works for IPv4? */
! 			for (cp = strtok_r(ipstr, ".", &lasts); cp;
  			     cp = strtok_r(NULL, ".", &lasts)) {
  				size_t cplen = strlen(cp);
  				(void)memcpy(revipstr + len - cplen, cp, cplen);
  				len -= (cplen + 1); /* 1 for dot */
--- 2988,2996 ----
  			(void)memset(revipstr, '.', len);
  			revipstr[len] = '\0';
  
  			/* XXX only works for IPv4? */
! 			for (lasts = NULL, cp = strtok_r(ipstr, ".", &lasts); cp;
  			     cp = strtok_r(NULL, ".", &lasts)) {
  				size_t cplen = strlen(cp);
  				(void)memcpy(revipstr + len - cplen, cp, cplen);
  				len -= (cplen + 1); /* 1 for dot */
