1diff --git a/scheduler/ipp.c b/scheduler/ipp.c 2index 1252437..8443f65 100644 3--- a/scheduler/ipp.c 4+++ b/scheduler/ipp.c 5@@ -8796,12 +8796,11 @@ print_job(cupsd_client_t *con, /* I - Client connection */ 6 7 if (!filetype) 8 filetype = mimeType(MimeDatabase, super, type); 9- 10- cupsdLogMessage(CUPSD_LOG_INFO, "[Job ???] Request file type is %s/%s.", 11- filetype->super, filetype->type); 12- 13- snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, filetype->type); 14- ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE, "document-format-detected", NULL, mimetype); 15+ if (filetype) { 16+ cupsdLogMessage(CUPSD_LOG_INFO, "[Job ???] Request file type is %s/%s.", filetype->super, filetype->type); 17+ snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, filetype->type); 18+ ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE, "document-format-detected", NULL, mimetype); 19+ } 20 } 21 else 22 filetype = mimeType(MimeDatabase, super, type); 23@@ -10047,13 +10046,11 @@ send_document(cupsd_client_t *con, /* I - Client connection */ 24 25 if (!filetype) 26 filetype = mimeType(MimeDatabase, super, type); 27- 28- if (filetype) 29- cupsdLogJob(job, CUPSD_LOG_DEBUG, "Request file type is %s/%s.", 30- filetype->super, filetype->type); 31- 32- snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, filetype->type); 33- ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_MIMETYPE, "document-format-detected", NULL, mimetype); 34+ if (filetype) { 35+ cupsdLogJob(job, CUPSD_LOG_DEBUG, "Request file type is %s/%s.", filetype->super, filetype->type); 36+ snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super, filetype->type); 37+ ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_MIMETYPE, "document-format-detected", NULL, mimetype); 38+ } 39 } 40 else 41 filetype = mimeType(MimeDatabase, super, type); 42diff --git a/scheduler/job.c b/scheduler/job.c 43index c4e058e..041476c 100644 44--- a/scheduler/job.c 45+++ b/scheduler/job.c 46@@ -2248,9 +2248,14 @@ cupsdSaveAllJobs(void) 47 cupsFilePrintf(fp, "DestType %d\n", job->dtype); 48 cupsFilePrintf(fp, "KOctets %d\n", job->koctets); 49 cupsFilePrintf(fp, "NumFiles %d\n", job->num_files); 50- for (i = 0; i < job->num_files; i ++) 51+ for (i = 0; i < job->num_files; i ++) { 52+ if (job->filetypes == NULL || job->filetypes[i] == NULL) { 53+ cupsdLogMessage(CUPSD_LOG_WARN, "find empty filetypes: %d", i); 54+ continue; 55+ } 56 cupsFilePrintf(fp, "File %d %s/%s %d\n", i + 1, job->filetypes[i]->super, 57 job->filetypes[i]->type, job->compressions[i]); 58+ } 59 cupsFilePuts(fp, "</Job>\n"); 60 } 61 62-- 63