SM_ASSERT
# define SM_FINALLY SM_ASSERT(SmExcHandler == &_h); \
SM_ASSERT(SmExcHandler == &_h); \
SM_ASSERT(SmExcHandler == &_h); \
SM_ASSERT(ctx != NULL);
SM_ASSERT(buf != NULL);
SM_ASSERT(newbuf != NULL);
SM_ASSERT(len + MILTER_OPTLEN > len);
SM_ASSERT(offset + MILTER_LEN_BYTES < len);
SM_ASSERT(offset + l <= len);
SM_ASSERT(ctx != NULL);
SM_ASSERT(ctx != NULL);
#ifdef SM_ASSERT
#ifndef SM_ASSERT
SM_ASSERT(!Monitor);
SM_ASSERT(Monitor);
SM_ASSERT(Mon_exec_time > 0);
SM_ASSERT(len > l1);
SM_ASSERT(offset < len);
SM_ASSERT(offset + l1 <= len);
SM_ASSERT(offset > l1);
SM_ASSERT(len > l1);
SM_ASSERT(offset < len);
SM_ASSERT(offset + l1 <= len);
SM_ASSERT(offset > l1);
SM_ASSERT(ctx != NULL);
SM_ASSERT(Tskmgr.tm_signature == TM_SIGNATURE);
SM_ASSERT(ctx != NULL);
SM_ASSERT(ctx != NULL);
SM_ASSERT(ctx != NULL);
SM_ASSERT(ctx != NULL);
SM_ASSERT(intvl < (unsigned int) INT_MAX);
SM_ASSERT(rpool->sm_bigobjectsize <= rpool->sm_poolsize);
SM_ASSERT(rpool->sm_bigobjectsize <= rpool->sm_poolsize);
SM_ASSERT(l + 1 > l);
SM_ASSERT(bufused <= olen);
SM_ASSERT(bufused < olen);
SM_ASSERT(bufused < olen);
SM_ASSERT(l >= 2);
SM_ASSERT(pbp < peekbuf +
SM_ASSERT(pbp < peekbuf +
SM_ASSERT(pbp < peekbuf +
SM_ASSERT(mstate == MS_UFROM || mstate == MS_HEADER);
SM_ASSERT(bp > buf);
SM_ASSERT(*(bp - 1) != '\n' || bp > buf + 1);
SM_ASSERT(df == NULL);
SM_ASSERT(dn >= 0);
SM_ASSERT(dn < MAXDAEMONS);
SM_ASSERT(n > 0);
SM_ASSERT(e->e_from.q_mailer != NULL);
SM_ASSERT(strsize < tobufsize);
SM_ASSERT(0);
SM_ASSERT(pbp < peekbuf +
SM_ASSERT(pbp < peekbuf + sizeof(peekbuf));
SM_ASSERT(pbp < peekbuf +
SM_ASSERT(pbp < peekbuf +
SM_ASSERT(buflen > 0);
SM_ASSERT(ret >= 0);
SM_ASSERT(p <= q);
SM_ASSERT(sizeof(obuf) > opos * 2);
SM_ASSERT(obp < &obuf[MAXLINE]);
SM_ASSERT(l + 2 > l);
SM_ASSERT(last != NULL);
SM_ASSERT(nettolen > strlen(map->map_mname));
SM_ASSERT(nettolen > strlen(key));
SM_ASSERT(m != NULL);
SM_ASSERT(buf != NULL);
SM_ASSERT(len_n < len_f);
SM_ASSERT(len_t >= len_n + 1 + len_v + 1);
SM_ASSERT(str != NULL);
SM_ASSERT(l + 2 > l);
SM_ASSERT(response != NULL);
SM_ASSERT(pargc != NULL);
SM_ASSERT(0);
SM_ASSERT(0);
SM_ASSERT(wn >= 0);
SM_ASSERT(cp != NULL);
SM_ASSERT(len >= blen - 1);
SM_ASSERT(off < sizeof(relpath));
SM_ASSERT(len > 0);
SM_ASSERT(basedir[len - 1] == '/');
SM_ASSERT(!owner);
SM_ASSERT(j < l);
SM_ASSERT(j < l);
SM_ASSERT(p < endp);
SM_ASSERT(p < endp);
SM_ASSERT(p < endp);
SM_ASSERT(pq != NULL);
SM_ASSERT(con != NULL);
SM_ASSERT(q != NULL || OpMode == MD_SMTP);
SM_ASSERT((n * 3) + 2 < sizeof(md5h));
SM_ASSERT(ctx != NULL);
SM_ASSERT(ProcListSize < INT_MAX - PROC_LIST_SEG);
SM_ASSERT(CurChildren < INT_MAX);
SM_ASSERT(l + 1 > l);