va_start(ap, count);
for (i = 0; i < count; i++)
- {
if (one_pattern_match(name, slen, has_addresses, va_arg(ap, uschar *)))
+ {
+ va_end(ap);
return cond;
- }
+ }
va_end(ap);
return !cond;
"unable to send file body to socket (%s)", scanner_options),
sock);
}
- (void)close(drweb_fd);
}
else
{
/* parse options */
/*XXX should these options be common over scanner types? */
if (clamd_option(cd, sublist, &subsep) != OK)
- {
return m_errlog_defer(scanent, NULL,
string_sprintf("bad option '%s'", scanner_options));
- continue;
- }
cv[num_servers++] = cd;
if (num_servers >= MAX_CLAMD_SERVERS)
if (!cur_val)
cur_val = pdkim_strnew(NULL);
- if (c == '\r' || c == '\n')
- goto NEXT_CHAR;
-
if (c == ';' || c == '\0')
{
if (cur_tag->len > 0)
if (!(sig->signature_header = pdkim_create_header(sig, TRUE)))
return PDKIM_ERR_OOM;
+
+ /* We only ever sign with one sig, and we free'd "headernames"
+ above. So to keep static-analysers happy, exit the loop explicitly.
+ Perhaps the code would be more clear if signing and verification
+ loops were separated? */
+
+ break;
}
/* VERIFICATION ----------------------------------------------------------- */
}
else
{
- f_pos = ftell(mime_stream);
+ if ((f_pos = ftell(mime_stream)) < 0)
+ {
+ log_write(0, LOG_MAIN|LOG_PANIC,
+ "regex acl condition: mime_stream: %s", strerror(errno));
+ return DEFER;
+ }
mbox_file = mime_stream;
}
#ifdef EXPERIMENTAL_SRS
addr_prop.srs_sender = NULL;
#endif
+#ifdef SUPPORT_I18N
+addr_prop.utf8_msg = FALSE; /*XXX should we not copy this from the parent? */
+addr_prop.utf8_downcvt = FALSE;
+addr_prop.utf8_downcvt_maybe = FALSE;
+#endif
+
/* When verifying and testing addresses, the "logwrite" command in filters
must be bypassed. */
smtp_cmd_data = NULL;
if (smtp_in_auth(au, &s, &ss) == OK)
- DEBUG(D_auth) debug_printf("tls auth succeeded\n");
+ { DEBUG(D_auth) debug_printf("tls auth succeeded\n"); }
else
- DEBUG(D_auth) debug_printf("tls auth not succeeded\n");
+ { DEBUG(D_auth) debug_printf("tls auth not succeeded\n"); }
break;
}
}
doesn't seem much we can do about that. */
(void)string_vformat(buffer+15, sizeof(buffer) - 15, format, ap);
+va_end(ap);
return (eno == EACCES)?
string_sprintf("%s: %s (euid=%ld egid=%ld)", buffer, strerror(eno),
va_start(ap, format);
if (!string_vformat(big_buffer, big_buffer_size, CS format, ap))
{
+ va_end(ap);
errno = ERRNO_SMTPFORMAT;
return FALSE;
}