summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorDeepak Rathore <deeratho@cisco.com>2025-12-12 07:14:16 -0800
committerSteve Sakoman <steve@sakoman.com>2025-12-31 07:49:31 -0800
commit85e5f0fa1e4a1fa1549d9544f69ae3afbc747266 (patch)
treedfe4cf9e4f9e2a01b31cd04578c025fe15e4bef9 /meta
parent15a18fae405a4cb261401042bc513c0df9129205 (diff)
downloadpoky-85e5f0fa1e4a1fa1549d9544f69ae3afbc747266.tar.gz
cups 2.4.11: Fix CVE-2025-61915
Upstream Repository: https://github.com/OpenPrinting/cups.git Bug Details: https://nvd.nist.gov/vuln/detail/CVE-2025-61915 Type: Security Fix CVE: CVE-2025-61915 Score: 6.7 Patch: https://github.com/OpenPrinting/cups/commit/db8d560262c2 (From OE-Core rev: ca252aac4e50b7ed8864bf7482a86fe7129e737e) Signed-off-by: Deepak Rathore <deeratho@cisco.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-extended/cups/cups.inc1
-rw-r--r--meta/recipes-extended/cups/cups/CVE-2025-61915.patch491
2 files changed, 492 insertions, 0 deletions
diff --git a/meta/recipes-extended/cups/cups.inc b/meta/recipes-extended/cups/cups.inc
index cf3df32306..12668ca023 100644
--- a/meta/recipes-extended/cups/cups.inc
+++ b/meta/recipes-extended/cups/cups.inc
@@ -18,6 +18,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/cups-${PV}-source.tar.gz \
18 file://CVE-2025-58060.patch \ 18 file://CVE-2025-58060.patch \
19 file://CVE-2025-58364.patch \ 19 file://CVE-2025-58364.patch \
20 file://CVE-2025-58436.patch \ 20 file://CVE-2025-58436.patch \
21 file://CVE-2025-61915.patch \
21 " 22 "
22 23
23GITHUB_BASE_URI = "https://github.com/OpenPrinting/cups/releases" 24GITHUB_BASE_URI = "https://github.com/OpenPrinting/cups/releases"
diff --git a/meta/recipes-extended/cups/cups/CVE-2025-61915.patch b/meta/recipes-extended/cups/cups/CVE-2025-61915.patch
new file mode 100644
index 0000000000..ad91c66b73
--- /dev/null
+++ b/meta/recipes-extended/cups/cups/CVE-2025-61915.patch
@@ -0,0 +1,491 @@
1From 3ff24bbe1d0e11a2edb5cac0ae421b8e95220651 Mon Sep 17 00:00:00 2001
2From: Zdenek Dohnal <zdohnal@redhat.com>
3Date: Fri, 21 Nov 2025 07:36:36 +0100
4Subject: [PATCH] Fix various issues in cupsd
5
6Various issues were found by @SilverPlate3, recognized as CVE-2025-61915:
7
8- out of bound write when handling IPv6 addresses,
9- cupsd crash caused by null dereference when ErrorPolicy value is empty,
10
11On the top of that, Mike Sweet noticed vulnerability via domain socket,
12exploitable locally if attacker has access to domain socket and knows username
13of user within a group which is present in CUPS system groups:
14
15- rewrite of cupsd.conf via PeerCred authorization via domain socket
16
17The last vulnerability is fixed by introducing PeerCred directive for cups-files.conf,
18which controls whether PeerCred is enabled/disabled for user in CUPS system groups.
19
20Fixes CVE-2025-61915
21
22CVE: CVE-2025-61915
23Upstream-Status: Backport [https://github.com/OpenPrinting/cups/commit/db8d560262c2]
24
25(cherry picked from commit db8d560262c22a21ee1e55dfd62fa98d9359bcb0)
26Signed-off-by: Deepak Rathore <deeratho@cisco.com>
27---
28 conf/cups-files.conf.in | 3 ++
29 config-scripts/cups-defaults.m4 | 9 +++++
30 config.h.in | 7 ++++
31 configure | 22 ++++++++++
32 doc/help/man-cups-files.conf.html | 9 ++++-
33 man/cups-files.conf.5 | 17 ++++++--
34 scheduler/auth.c | 8 +++-
35 scheduler/auth.h | 7 ++++
36 scheduler/client.c | 2 +-
37 scheduler/conf.c | 60 ++++++++++++++++++++++++----
38 test/run-stp-tests.sh | 2 +-
39 vcnet/config.h | 7 ++++
40 xcode/CUPS.xcodeproj/project.pbxproj | 2 -
41 xcode/config.h | 7 ++++
42 14 files changed, 145 insertions(+), 17 deletions(-)
43
44diff --git a/conf/cups-files.conf.in b/conf/cups-files.conf.in
45index 27d8be96f..bc999e420 100644
46--- a/conf/cups-files.conf.in
47+++ b/conf/cups-files.conf.in
48@@ -22,6 +22,9 @@
49 SystemGroup @CUPS_SYSTEM_GROUPS@
50 @CUPS_SYSTEM_AUTHKEY@
51
52+# Are Unix domain socket peer credentials used for authorization?
53+PeerCred @CUPS_PEER_CRED@
54+
55 # User that is substituted for unauthenticated (remote) root accesses...
56 #RemoteRoot remroot
57
58diff --git a/config-scripts/cups-defaults.m4 b/config-scripts/cups-defaults.m4
59index 27e5bc472..b4f03d624 100644
60--- a/config-scripts/cups-defaults.m4
61+++ b/config-scripts/cups-defaults.m4
62@@ -129,6 +129,15 @@ AC_ARG_WITH([log_level], AS_HELP_STRING([--with-log-level], [set default LogLeve
63 AC_SUBST([CUPS_LOG_LEVEL])
64 AC_DEFINE_UNQUOTED([CUPS_DEFAULT_LOG_LEVEL], ["$CUPS_LOG_LEVEL"], [Default LogLevel value.])
65
66+dnl Default PeerCred
67+AC_ARG_WITH([peer_cred], AS_HELP_STRING([--with-peer-cred], [set default PeerCred value (on/off/root-only), default=on]), [
68+ CUPS_PEER_CRED="$withval"
69+], [
70+ CUPS_PEER_CRED="on"
71+])
72+AC_SUBST([CUPS_PEER_CRED])
73+AC_DEFINE_UNQUOTED([CUPS_DEFAULT_PEER_CRED], ["$CUPS_PEER_CRED"], [Default PeerCred value.])
74+
75 dnl Default AccessLogLevel
76 AC_ARG_WITH(access_log_level, [ --with-access-log-level set default AccessLogLevel value, default=none],
77 CUPS_ACCESS_LOG_LEVEL="$withval",
78diff --git a/config.h.in b/config.h.in
79index 6940b9604..222b3b5bf 100644
80--- a/config.h.in
81+++ b/config.h.in
82@@ -86,6 +86,13 @@
83 #define CUPS_DEFAULT_ERROR_POLICY "stop-printer"
84
85
86+/*
87+ * Default PeerCred value...
88+ */
89+
90+#define CUPS_DEFAULT_PEER_CRED "on"
91+
92+
93 /*
94 * Default MaxCopies value...
95 */
96diff --git a/configure b/configure
97index f8147c9d6..f456c8588 100755
98--- a/configure
99+++ b/configure
100@@ -672,6 +672,7 @@ CUPS_BROWSING
101 CUPS_SYNC_ON_CLOSE
102 CUPS_PAGE_LOG_FORMAT
103 CUPS_ACCESS_LOG_LEVEL
104+CUPS_PEER_CRED
105 CUPS_LOG_LEVEL
106 CUPS_FATAL_ERRORS
107 CUPS_ERROR_POLICY
108@@ -925,6 +926,7 @@ with_max_log_size
109 with_error_policy
110 with_fatal_errors
111 with_log_level
112+with_peer_cred
113 with_access_log_level
114 enable_page_logging
115 enable_sync_on_close
116@@ -1661,6 +1663,8 @@ Optional Packages:
117 --with-error-policy set default ErrorPolicy value, default=stop-printer
118 --with-fatal-errors set default FatalErrors value, default=config
119 --with-log-level set default LogLevel value, default=warn
120+ --with-peer-cred set default PeerCred value (on/off/root-only),
121+ default=on
122 --with-access-log-level set default AccessLogLevel value, default=none
123 --with-local-protocols set default BrowseLocalProtocols, default=""
124 --with-cups-user set default user for CUPS
125@@ -11718,6 +11722,24 @@ printf "%s\n" "#define CUPS_DEFAULT_LOG_LEVEL \"$CUPS_LOG_LEVEL\"" >>confdefs.h
126
127
128
129+# Check whether --with-peer_cred was given.
130+if test ${with_peer_cred+y}
131+then :
132+ withval=$with_peer_cred;
133+ CUPS_PEER_CRED="$withval"
134+
135+else $as_nop
136+
137+ CUPS_PEER_CRED="on"
138+
139+fi
140+
141+
142+
143+printf "%s\n" "#define CUPS_DEFAULT_PEER_CRED \"$CUPS_PEER_CRED\"" >>confdefs.h
144+
145+
146+
147 # Check whether --with-access_log_level was given.
148 if test ${with_access_log_level+y}
149 then :
150diff --git a/doc/help/man-cups-files.conf.html b/doc/help/man-cups-files.conf.html
151index c0c775dec..5a9ddefeb 100644
152--- a/doc/help/man-cups-files.conf.html
153+++ b/doc/help/man-cups-files.conf.html
154@@ -119,6 +119,13 @@ The default is "/var/log/cups/page_log".
155 <dt><a name="PassEnv"></a><b>PassEnv </b><i>variable </i>[ ... <i>variable </i>]
156 <dd style="margin-left: 5.0em">Passes the specified environment variable(s) to child processes.
157 Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive.
158+<dt><a name="PeerCred"></a><b>PeerCred off</b>
159+<dd style="margin-left: 5.0em"><dt><b>PeerCred on</b>
160+<dd style="margin-left: 5.0em"><dt><b>PeerCred root-only</b>
161+<dd style="margin-left: 5.0em">Specifies whether peer credentials are used for authorization when communicating over the UNIX domain socket.
162+When <b>on</b>, the peer credentials of any user are accepted for authorization.
163+The value <b>off</b> disables the use of peer credentials entirely, while the value <b>root-only</b> allows peer credentials only for the root user.
164+Note: for security reasons, the <b>on</b> setting is reduced to <b>root-only</b> for authorization of PUT requests.
165 <dt><a name="RemoteRoot"></a><b>RemoteRoot </b><i>username</i>
166 <dd style="margin-left: 5.0em">Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user.
167 The default is "remroot".
168@@ -207,7 +214,7 @@ command is used instead.
169 <a href="man-subscriptions.conf.html?TOPIC=Man+Pages"><b>subscriptions.conf</b>(5),</a>
170 CUPS Online Help (<a href="http://localhost:631/help">http://localhost:631/help</a>)
171 <h2 class="title"><a name="COPYRIGHT">Copyright</a></h2>
172-Copyright &copy; 2020-2023 by OpenPrinting.
173+Copyright &copy; 2020-2025 by OpenPrinting.
174
175 </body>
176 </html>
177diff --git a/man/cups-files.conf.5 b/man/cups-files.conf.5
178index 8358b62a1..107072c3c 100644
179--- a/man/cups-files.conf.5
180+++ b/man/cups-files.conf.5
181@@ -1,14 +1,14 @@
182 .\"
183 .\" cups-files.conf man page for CUPS.
184 .\"
185-.\" Copyright © 2020-2024 by OpenPrinting.
186+.\" Copyright © 2020-2025 by OpenPrinting.
187 .\" Copyright © 2007-2019 by Apple Inc.
188 .\" Copyright © 1997-2006 by Easy Software Products.
189 .\"
190 .\" Licensed under Apache License v2.0. See the file "LICENSE" for more
191 .\" information.
192 .\"
193-.TH cups-files.conf 5 "CUPS" "2021-03-06" "OpenPrinting"
194+.TH cups-files.conf 5 "CUPS" "2025-10-08" "OpenPrinting"
195 .SH NAME
196 cups\-files.conf \- file and directory configuration file for cups
197 .SH DESCRIPTION
198@@ -166,6 +166,17 @@ The default is "/var/log/cups/page_log".
199 \fBPassEnv \fIvariable \fR[ ... \fIvariable \fR]
200 Passes the specified environment variable(s) to child processes.
201 Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive.
202+.\"#PeerCred
203+.TP 5
204+\fBPeerCred off\fR
205+.TP 5
206+\fBPeerCred on\fR
207+.TP 5
208+\fBPeerCred root-only\fR
209+Specifies whether peer credentials are used for authorization when communicating over the UNIX domain socket.
210+When \fBon\fR, the peer credentials of any user are accepted for authorization.
211+The value \fBoff\fR disables the use of peer credentials entirely, while the value \fBroot-only\fR allows peer credentials only for the root user.
212+Note: for security reasons, the \fBon\fR setting is reduced to \fBroot-only\fR for authorization of PUT requests.
213 .\"#RemoteRoot
214 .TP 5
215 \fBRemoteRoot \fIusername\fR
216@@ -289,4 +300,4 @@ command is used instead.
217 .BR subscriptions.conf (5),
218 CUPS Online Help (http://localhost:631/help)
219 .SH COPYRIGHT
220-Copyright \[co] 2020-2024 by OpenPrinting.
221+Copyright \[co] 2020-2025 by OpenPrinting.
222diff --git a/scheduler/auth.c b/scheduler/auth.c
223index 3c9aa72aa..bd0d28a0e 100644
224--- a/scheduler/auth.c
225+++ b/scheduler/auth.c
226@@ -398,7 +398,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
227 }
228 #endif /* HAVE_AUTHORIZATION_H */
229 #if defined(SO_PEERCRED) && defined(AF_LOCAL)
230- else if (!strncmp(authorization, "PeerCred ", 9) &&
231+ else if (PeerCred != CUPSD_PEERCRED_OFF && !strncmp(authorization, "PeerCred ", 9) &&
232 con->http->hostaddr->addr.sa_family == AF_LOCAL && con->best)
233 {
234 /*
235@@ -441,6 +441,12 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
236 }
237 #endif /* HAVE_AUTHORIZATION_H */
238
239+ if ((PeerCred == CUPSD_PEERCRED_ROOTONLY || httpGetState(con->http) == HTTP_STATE_PUT_RECV) && strcmp(authorization + 9, "root"))
240+ {
241+ cupsdLogClient(con, CUPSD_LOG_INFO, "User \"%s\" is not allowed to use peer credentials.", authorization + 9);
242+ return;
243+ }
244+
245 if ((pwd = getpwnam(authorization + 9)) == NULL)
246 {
247 cupsdLogClient(con, CUPSD_LOG_ERROR, "User \"%s\" does not exist.", authorization + 9);
248diff --git a/scheduler/auth.h b/scheduler/auth.h
249index ee98e92c7..fdf71213f 100644
250--- a/scheduler/auth.h
251+++ b/scheduler/auth.h
252@@ -50,6 +50,10 @@
253 #define CUPSD_AUTH_LIMIT_ALL 127 /* Limit all requests */
254 #define CUPSD_AUTH_LIMIT_IPP 128 /* Limit IPP requests */
255
256+#define CUPSD_PEERCRED_OFF 0 /* Don't allow PeerCred authorization */
257+#define CUPSD_PEERCRED_ON 1 /* Allow PeerCred authorization for all users */
258+#define CUPSD_PEERCRED_ROOTONLY 2 /* Allow PeerCred authorization for root user */
259+
260 #define IPP_ANY_OPERATION (ipp_op_t)0
261 /* Any IPP operation */
262 #define IPP_BAD_OPERATION (ipp_op_t)-1
263@@ -105,6 +109,9 @@ typedef struct
264
265 VAR cups_array_t *Locations VALUE(NULL);
266 /* Authorization locations */
267+VAR int PeerCred VALUE(CUPSD_PEERCRED_ON);
268+ /* Allow PeerCred authorization? */
269+
270 #ifdef HAVE_TLS
271 VAR http_encryption_t DefaultEncryption VALUE(HTTP_ENCRYPT_REQUIRED);
272 /* Default encryption for authentication */
273diff --git a/scheduler/client.c b/scheduler/client.c
274index d495d9a75..81db4aa52 100644
275--- a/scheduler/client.c
276+++ b/scheduler/client.c
277@@ -2204,7 +2204,7 @@ cupsdSendHeader(
278 auth_size = sizeof(auth_str) - (size_t)(auth_key - auth_str);
279
280 #if defined(SO_PEERCRED) && defined(AF_LOCAL)
281- if (httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL)
282+ if (PeerCred != CUPSD_PEERCRED_OFF && httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL)
283 {
284 strlcpy(auth_key, ", PeerCred", auth_size);
285 auth_key += 10;
286diff --git a/scheduler/conf.c b/scheduler/conf.c
287index 3184d72f0..6accf0590 100644
288--- a/scheduler/conf.c
289+++ b/scheduler/conf.c
290@@ -47,6 +47,7 @@ typedef enum
291 {
292 CUPSD_VARTYPE_INTEGER, /* Integer option */
293 CUPSD_VARTYPE_TIME, /* Time interval option */
294+ CUPSD_VARTYPE_NULLSTRING, /* String option or NULL/empty string */
295 CUPSD_VARTYPE_STRING, /* String option */
296 CUPSD_VARTYPE_BOOLEAN, /* Boolean option */
297 CUPSD_VARTYPE_PATHNAME, /* File/directory name option */
298@@ -69,7 +70,7 @@ static const cupsd_var_t cupsd_vars[] =
299 {
300 { "AutoPurgeJobs", &JobAutoPurge, CUPSD_VARTYPE_BOOLEAN },
301 #ifdef HAVE_DNSSD
302- { "BrowseDNSSDSubTypes", &DNSSDSubTypes, CUPSD_VARTYPE_STRING },
303+ { "BrowseDNSSDSubTypes", &DNSSDSubTypes, CUPSD_VARTYPE_NULLSTRING },
304 #endif /* HAVE_DNSSD */
305 { "BrowseWebIF", &BrowseWebIF, CUPSD_VARTYPE_BOOLEAN },
306 { "Browsing", &Browsing, CUPSD_VARTYPE_BOOLEAN },
307@@ -120,7 +121,7 @@ static const cupsd_var_t cupsd_vars[] =
308 { "MaxSubscriptionsPerPrinter",&MaxSubscriptionsPerPrinter, CUPSD_VARTYPE_INTEGER },
309 { "MaxSubscriptionsPerUser", &MaxSubscriptionsPerUser, CUPSD_VARTYPE_INTEGER },
310 { "MultipleOperationTimeout", &MultipleOperationTimeout, CUPSD_VARTYPE_TIME },
311- { "PageLogFormat", &PageLogFormat, CUPSD_VARTYPE_STRING },
312+ { "PageLogFormat", &PageLogFormat, CUPSD_VARTYPE_NULLSTRING },
313 { "PreserveJobFiles", &JobFiles, CUPSD_VARTYPE_TIME },
314 { "PreserveJobHistory", &JobHistory, CUPSD_VARTYPE_TIME },
315 { "ReloadTimeout", &ReloadTimeout, CUPSD_VARTYPE_TIME },
316@@ -791,6 +792,13 @@ cupsdReadConfiguration(void)
317 IdleExitTimeout = 60;
318 #endif /* HAVE_ONDEMAND */
319
320+ if (!strcmp(CUPS_DEFAULT_PEER_CRED, "off"))
321+ PeerCred = CUPSD_PEERCRED_OFF;
322+ else if (!strcmp(CUPS_DEFAULT_PEER_CRED, "root-only"))
323+ PeerCred = CUPSD_PEERCRED_ROOTONLY;
324+ else
325+ PeerCred = CUPSD_PEERCRED_ON;
326+
327 /*
328 * Setup environment variables...
329 */
330@@ -1831,7 +1839,7 @@ get_addr_and_mask(const char *value, /* I - String from config file */
331
332 family = AF_INET6;
333
334- for (i = 0, ptr = value + 1; *ptr && i < 8; i ++)
335+ for (i = 0, ptr = value + 1; *ptr && i >= 0 && i < 8; i ++)
336 {
337 if (*ptr == ']')
338 break;
339@@ -1977,7 +1985,7 @@ get_addr_and_mask(const char *value, /* I - String from config file */
340 #ifdef AF_INET6
341 if (family == AF_INET6)
342 {
343- if (i > 128)
344+ if (i < 0 || i > 128)
345 return (0);
346
347 i = 128 - i;
348@@ -2011,7 +2019,7 @@ get_addr_and_mask(const char *value, /* I - String from config file */
349 else
350 #endif /* AF_INET6 */
351 {
352- if (i > 32)
353+ if (i < 0 || i > 32)
354 return (0);
355
356 mask[0] = 0xffffffff;
357@@ -2921,7 +2929,17 @@ parse_variable(
358 cupsdSetString((char **)var->ptr, temp);
359 break;
360
361+ case CUPSD_VARTYPE_NULLSTRING :
362+ cupsdSetString((char **)var->ptr, value);
363+ break;
364+
365 case CUPSD_VARTYPE_STRING :
366+ if (!value)
367+ {
368+ cupsdLogMessage(CUPSD_LOG_ERROR, "Missing value for %s on line %d of %s.", line, linenum, filename);
369+ return (0);
370+ }
371+
372 cupsdSetString((char **)var->ptr, value);
373 break;
374 }
375@@ -3436,9 +3454,10 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
376 line, value ? " " : "", value ? value : "", linenum,
377 ConfigurationFile, CupsFilesFile);
378 }
379- else
380- parse_variable(ConfigurationFile, linenum, line, value,
381- sizeof(cupsd_vars) / sizeof(cupsd_vars[0]), cupsd_vars);
382+ else if (!parse_variable(ConfigurationFile, linenum, line, value,
383+ sizeof(cupsd_vars) / sizeof(cupsd_vars[0]), cupsd_vars) &&
384+ (FatalErrors & CUPSD_FATAL_CONFIG))
385+ return (0);
386 }
387
388 return (1);
389@@ -3597,6 +3616,31 @@ read_cups_files_conf(cups_file_t *fp) /* I - File to read from */
390 break;
391 }
392 }
393+ else if (!_cups_strcasecmp(line, "PeerCred") && value)
394+ {
395+ /*
396+ * PeerCred {off,on,root-only}
397+ */
398+
399+ if (!_cups_strcasecmp(value, "off"))
400+ {
401+ PeerCred = CUPSD_PEERCRED_OFF;
402+ }
403+ else if (!_cups_strcasecmp(value, "on"))
404+ {
405+ PeerCred = CUPSD_PEERCRED_ON;
406+ }
407+ else if (!_cups_strcasecmp(value, "root-only"))
408+ {
409+ PeerCred = CUPSD_PEERCRED_ROOTONLY;
410+ }
411+ else
412+ {
413+ cupsdLogMessage(CUPSD_LOG_ERROR, "Unknown PeerCred \"%s\" on line %d of %s.", value, linenum, CupsFilesFile);
414+ if (FatalErrors & CUPSD_FATAL_CONFIG)
415+ return (0);
416+ }
417+ }
418 else if (!_cups_strcasecmp(line, "PrintcapFormat") && value)
419 {
420 /*
421diff --git a/test/run-stp-tests.sh b/test/run-stp-tests.sh
422index 39b53c3e4..2089f7944 100755
423--- a/test/run-stp-tests.sh
424+++ b/test/run-stp-tests.sh
425@@ -512,7 +512,7 @@ fi
426
427 cat >$BASE/cups-files.conf <<EOF
428 FileDevice yes
429-Printcap
430+Printcap $BASE/printcap
431 User $user
432 ServerRoot $BASE
433 StateDir $BASE
434diff --git a/vcnet/config.h b/vcnet/config.h
435index 7fc459217..76f5adbb7 100644
436--- a/vcnet/config.h
437+++ b/vcnet/config.h
438@@ -169,6 +169,13 @@ typedef unsigned long useconds_t;
439 #define CUPS_DEFAULT_ERROR_POLICY "stop-printer"
440
441
442+/*
443+ * Default PeerCred value...
444+ */
445+
446+#define CUPS_DEFAULT_PEER_CRED "on"
447+
448+
449 /*
450 * Default MaxCopies value...
451 */
452diff --git a/xcode/CUPS.xcodeproj/project.pbxproj b/xcode/CUPS.xcodeproj/project.pbxproj
453index 597946440..54ac652a1 100644
454--- a/xcode/CUPS.xcodeproj/project.pbxproj
455+++ b/xcode/CUPS.xcodeproj/project.pbxproj
456@@ -3433,7 +3433,6 @@
457 72220FB313330BCE00FCA411 /* mime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mime.c; path = ../scheduler/mime.c; sourceTree = "<group>"; };
458 72220FB413330BCE00FCA411 /* mime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mime.h; path = ../scheduler/mime.h; sourceTree = "<group>"; };
459 72220FB513330BCE00FCA411 /* type.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = type.c; path = ../scheduler/type.c; sourceTree = "<group>"; };
460- 7226369B18AE6D19004ED309 /* org.cups.cups-lpd.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "org.cups.cups-lpd.plist"; path = "../scheduler/org.cups.cups-lpd.plist"; sourceTree = SOURCE_ROOT; };
461 7226369C18AE6D19004ED309 /* org.cups.cupsd.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = org.cups.cupsd.plist; path = ../scheduler/org.cups.cupsd.plist; sourceTree = SOURCE_ROOT; };
462 7226369D18AE73BB004ED309 /* config.h.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = config.h.in; path = ../config.h.in; sourceTree = "<group>"; };
463 722A24EE2178D00C000CAB20 /* debug-internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "debug-internal.h"; path = "../cups/debug-internal.h"; sourceTree = "<group>"; };
464@@ -5055,7 +5054,6 @@
465 isa = PBXGroup;
466 children = (
467 72E65BDC18DC852700097E89 /* Makefile */,
468- 7226369B18AE6D19004ED309 /* org.cups.cups-lpd.plist */,
469 72E65BD518DC818400097E89 /* org.cups.cups-lpd.plist.in */,
470 7226369C18AE6D19004ED309 /* org.cups.cupsd.plist */,
471 72220F6913330B0C00FCA411 /* auth.c */,
472diff --git a/xcode/config.h b/xcode/config.h
473index e4a63f69d..366da777e 100644
474--- a/xcode/config.h
475+++ b/xcode/config.h
476@@ -88,6 +88,13 @@
477 #define CUPS_DEFAULT_ERROR_POLICY "stop-printer"
478
479
480+/*
481+ * Default PeerCred value...
482+ */
483+
484+#define CUPS_DEFAULT_PEER_CRED "on"
485+
486+
487 /*
488 * Default MaxCopies value...
489 */
490--
4912.44.1