diff options
-rw-r--r-- | driver.c | 5 | ||||
-rw-r--r-- | report.c | 2 | ||||
-rw-r--r-- | sink.c | 4 |
3 files changed, 6 insertions, 5 deletions
@@ -542,8 +542,9 @@ static int fetch_messages(int mailserver_socket, struct query *ctl, lastnum = num + fetchsizelimit - 1; if (lastnum > count) lastnum = count; - for (i = 0; i < fetchsizelimit; i++) - (*msgsizes)[i] = 0; + if (*msgsizes) + for (i = 0; i < fetchsizelimit; i++) + (*msgsizes)[i] = 0; stage = STAGE_GETSIZES; err = (ctl->server.base_protocol->getpartialsizes)(mailserver_socket, num, lastnum, *msgsizes); @@ -362,7 +362,7 @@ report_at_line (FILE *errfp, errnum, file_name, line_number, message, va_alist) static unsigned int old_line_number; if (old_line_number == line_number && - (file_name == old_file_name || !strcmp (old_file_name, file_name))) + (file_name == old_file_name || (old_file_name != NULL && 0 == strcmp (old_file_name, file_name)))) /* Simply return and print nothing. */ return; @@ -1189,14 +1189,14 @@ static int open_mda_sink(struct query *ctl, struct msgblk *msg, ** the worst case (end of string) sp[1] == '\0' */ if (sp[1] == 's' || sp[1] == 'T') { *dp++ = '\''; - strcpy(dp, names); + if (names) strcpy(dp, names); dp += nameslen; *dp++ = '\''; sp++; /* position sp over [sT] */ dp--; /* adjust dp */ } else if (sp[1] == 'F') { *dp++ = '\''; - strcpy(dp, from); + if (from) strcpy(dp, from); dp += fromlen; *dp++ = '\''; sp++; /* position sp over F */ |