• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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