-/* $Cambridge: exim/src/src/demime.c,v 1.4 2005/02/17 11:58:26 ph10 Exp $ */
+/* $Cambridge: exim/src/src/demime.c,v 1.8 2005/08/01 14:41:25 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
if (!demime_ok)
demime_rc = mime_demux(mbox_file, defer_error_buffer);
- fclose(mbox_file);
+ (void)fclose(mbox_file);
if (demime_rc == DEFER) {
/* temporary failure (DEFER => DEFER) */
do {
struct stat mystat;
- snprintf(CS file_name,1024,"%s/scan/%s/%s-%05u%s",spool_directory,message_id,message_id,file_nr,extension);
+ (void)string_format(file_name,1024,"%s/scan/%s/%s-%05u%s",spool_directory,message_id,message_id,file_nr,extension);
file_nr++;
if (file_nr >= MIME_SANITY_MAX_DUMP_FILES) {
/* max parts reached */
}
while(result != -1);
- *f = fopen(CS file_name,"w+");
+ *f = fopen(CS file_name,"wb+");
if (*f == NULL) {
/* cannot open new dump file, disk full ? -> soft error */
- snprintf(CS info, 1024,"unable to open dump file");
+ (void)string_format(info, 1024,"unable to open dump file");
return -2;
};
c = fgetc(f);
if (c == EOF) break;
if ( (c == '\t') || (c == ' ') ) continue;
- ungetc(c,f);
+ (void)ungetc(c,f);
};
/* end of the header, terminate with ';' */
c = ';';
for (i = 2; i < Ustrlen(line); i++) {
if ((line[i] != ' ') && (line[i] != '\t')) {
workbuf[j] = line[i];
- j++;
+ j++;
};
};
workbuf[j+1]='\0';
/* allocate memory for data and work buffer */
*data = (uschar *)malloc(line_len);
if (*data == NULL) {
- snprintf(CS info, 1024,"unable to allocate %lu bytes",line_len);
+ (void)string_format(info, 1024,"unable to allocate %lu bytes",line_len);
return -2;
};
work = (uschar *)malloc(line_len);
if (work == NULL) {
- snprintf(CS info, 1024,"unable to allocate %lu bytes",line_len);
+ (void)string_format(info, 1024,"unable to allocate %lu bytes",line_len);
return -2;
};
/* allocate memory for data */
*data = (uschar *)malloc(max_data_len);
if (*data == NULL) {
- snprintf(CS info, 1024,"unable to allocate %lu bytes",max_data_len);
+ (void)string_format(info, 1024,"unable to allocate %lu bytes",max_data_len);
return -2;
};
sprintf(f,"demime acl condition: ");
f+=22;
va_start(ap, format);
- vsnprintf(f, 16383,(char *)format, ap);
+ (void)string_vformat(US f, 16383,(char *)format, ap);
va_end(ap);
f-=22;
log_write(0, LOG_MAIN, f);
/* allocate room for our linebuffer */
line = (uschar *)malloc(MIME_SANITY_MAX_LINE_LENGTH);
if (line == NULL) {
- snprintf(CS info, 1024,"unable to allocate %u bytes",MIME_SANITY_MAX_LINE_LENGTH);
+ (void)string_format(info, 1024,"unable to allocate %u bytes",MIME_SANITY_MAX_LINE_LENGTH);
return DEFER;
};
if (data_len == -2) {
/* temp error, turn off uudecode mode */
if (uu_dump_file != NULL) {
- fclose(uu_dump_file); uu_dump_file = NULL;
+ (void)fclose(uu_dump_file); uu_dump_file = NULL;
};
uu_mode = MIME_UU_MODE_OFF;
return DEFER;
}
else if (data_len == -1) {
if (uu_dump_file != NULL) {
- fclose(uu_dump_file); uu_dump_file = NULL;
+ (void)fclose(uu_dump_file); uu_dump_file = NULL;
};
uu_mode = MIME_UU_MODE_OFF;
data_len = 0;
check for single "end" tag on line */
if ((strncmpic(line,US"end",3) == 0) && (line[3] < 32)) {
if (uu_dump_file != NULL) {
- fclose(uu_dump_file); uu_dump_file = NULL;
+ (void)fclose(uu_dump_file); uu_dump_file = NULL;
};
uu_mode = MIME_UU_MODE_OFF;
}
if (data_len == -2) {
/* temp error, turn off uudecode mode */
if (uu_dump_file != NULL) {
- fclose(uu_dump_file); uu_dump_file = NULL;
+ (void)fclose(uu_dump_file); uu_dump_file = NULL;
};
uu_mode = MIME_UU_MODE_OFF;
return DEFER;
if (data_len > 0) {
if (fwrite(data,1,data_len,uu_dump_file) < data_len) {
/* short write */
- snprintf(CS info, 1024,"short write on uudecode dump file");
+ (void)string_format(info, 1024,"short write on uudecode dump file");
free(line);
return DEFER;
};
mime_demux(mime_dump_file,info);
};
- fclose(mime_dump_file); mime_dump_file = NULL;
+ (void)fclose(mime_dump_file); mime_dump_file = NULL;
};
}
else if (tmp == 2) {
mime_demux(mime_dump_file,info);
};
- fclose(mime_dump_file); mime_dump_file = NULL;
+ (void)fclose(mime_dump_file); mime_dump_file = NULL;
};
}
else {
if (data_len > 0) {
if (fwrite(data,1,data_len,mime_dump_file) < data_len) {
/* short write */
- snprintf(CS info, 1024,"short write on dump file");
+ (void)string_format(info, 1024,"short write on dump file");
free(line);
return DEFER;
};
/* close files, they could still be open */
if (mime_dump_file != NULL)
- fclose(mime_dump_file);
+ (void)fclose(mime_dump_file);
if (uu_dump_file != NULL)
- fclose(uu_dump_file);
+ (void)fclose(uu_dump_file);
/* release line buffer */
free(line);
/* at least one file could be TNEF encoded.
attempt to send all decoded files thru the TNEF decoder */
- snprintf(CS file_name,1024,"%s/scan/%s",spool_directory,message_id);
+ (void)string_format(file_name,1024,"%s/scan/%s",spool_directory,message_id);
/* Removed FTTB. We need to decide on TNEF inclusion */
/* mime_unpack_tnef(file_name); */
};