+ msg_size = StrLength(CCC->redirect_buffer);
+ msgtext = SmashStrBuf(&CCC->redirect_buffer);
+
+ /* This check is being added on 2011apr02 as we are experiencing a problem where the msg_size
+ * is being reported as zero for every delivery after about 12h of server runtime; this seems
+ * to indicate a heap corruption of some sort? Deferring will allow the message to be delivered
+ * after a server restart instead of discarded. After we fix the real problem, this will still
+ * be a good sanity check to still have in place. --ajc
+ */
+ if (msg_size <= 0) {
+ syslog(LOG_ALERT, "msg_size is zero -- possible data corruption");
+ *status = 4;
+ strcpy(dsn, "Internal server error prevented successful delivery -- deferring");
+ goto bail;
+ }