int used = 0;
int used = 0, s = sizeof(matchlists) - 4;
build_reply(struct con *cp){	struct sdlist **matches;	int off = 0;	matches = sdl_lookup(blacklists, cp->af, cp->ia);	if (matches == NULL) {		if (cp->osize)			free(cp->obuf);		cp->obuf = NULL;		cp->osize = 0;		goto bad;	}	for (; *matches; matches++) {		int used = 0;		char *c = cp->obuf + off;		int left = cp->osize - off;		used = append_error_string(cp, off, matches[0]->string,		    cp->af, cp->ia);		if (used == -1)			goto bad;		off += used;		left -= used;		if (cp->obuf[off - 1] != '\n') {			if (left < 1) {				c = grow_obuf(cp, off);				if (c == NULL) {					if (cp->osize)						free(cp->obuf);					cp->obuf = NULL;					cp->osize = 0;					goto bad;				}			}			cp->obuf[off++] = '\n';			cp->obuf[off] = '\0';		}	}	return;bad:	/* Out of memory, or no match. give generic reply */	asprintf(&cp->obuf,	    "%s-Sorry %s\n"	    "%s-You are trying to send mail from an address listed by one\n"	    "%s or more IP-based registries as being a SPAM source.\n",	    nreply, cp->addr, nreply, nreply);	if (cp->obuf == NULL) {		/* we're having a really bad day.. */		cp->obufalloc = 0; /* know not to free or mangle */		cp->obuf = "450 Try again\n";	} else		cp->osize = strlen(cp->obuf) + 1;}