diff --git a/extra/cups/.SRCINFO b/extra/cups/.SRCINFO index 6321619f1..a7d66fc4e 100644 --- a/extra/cups/.SRCINFO +++ b/extra/cups/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = cups pkgver = 2.4.8 - pkgrel = 1 - epoch = 1 + pkgrel = 2 + epoch = 2 url = https://openprinting.github.io/cups/ arch = x86_64 license = Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause @@ -22,6 +22,7 @@ pkgbase = cups source = cups-2.4.0-statedir.patch source = cups-freebind.patch source = guid.patch + source = 0001-Fix-HTTP-query-in-web-interface-fixes-954.patch validpgpkeys = 7082A0A50A2E92640F3880E0E4522DCC9B246FF7 sha256sums = 75c326b4ba73975efcc9a25078c4b04cdb4ee333caaad0d0823dbd522c6479a0 sha256sums = SKIP @@ -30,7 +31,8 @@ pkgbase = cups sha256sums = 06173dfaea37bdd9b39b3e09aba98c34ae7112a2f521db45a688907d8848caa2 sha256sums = f0b15192952c151b1843742c87850ff3a7d0f3ba5dd236ed16623ef908472ad7 sha256sums = 3385047b9ac8a7b13aeb8f0ca55d15f793ce7283516db0155fe28a67923c592d - sha256sums = 0bf6a75ba1b051771f155d9a5d36b307a6d40c6857d645b250fe93f3fb713474 + sha256sums = 1b1c3268bdff6627b78070b6cd9abec6ef41572c27abbafccb237199f7137653 + sha256sums = 2fb4bf61c2c9322d4f3595553d2aa637fee375cc93383922494fd7f76f013e84 pkgname = libcups pkgdesc = OpenPrinting CUPS - client libraries and headers diff --git a/extra/cups/0001-Fix-HTTP-query-in-web-interface-fixes-954.patch b/extra/cups/0001-Fix-HTTP-query-in-web-interface-fixes-954.patch new file mode 100644 index 000000000..731d16a1a --- /dev/null +++ b/extra/cups/0001-Fix-HTTP-query-in-web-interface-fixes-954.patch @@ -0,0 +1,44 @@ +From 2344d33cea725076c794635de0a6ea1b2ac93069 Mon Sep 17 00:00:00 2001 +From: Zdenek Dohnal +Date: Tue, 14 May 2024 14:03:44 +0200 +Subject: [PATCH] Fix HTTP query in web interface (fixes #954) + +We can use `?QUERY=` in URL for searching for destinations +- allow it when checking whether the destination exists. +--- + scheduler/client.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/scheduler/client.c b/scheduler/client.c +index 8d1c5cc5d..9994f6b5f 100644 +--- a/scheduler/client.c ++++ b/scheduler/client.c +@@ -1105,7 +1105,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ + } + else if (!strncmp(con->uri, "/classes", 8)) + { +- if (strlen(con->uri) > 9 && !cupsdFindClass(con->uri + 9)) ++ if (strlen(con->uri) > 9 && con->uri[9] != '?' && !cupsdFindClass(con->uri + 9)) + { + if (!cupsdSendError(con, HTTP_STATUS_NOT_FOUND, CUPSD_AUTH_NONE)) + { +@@ -1125,14 +1125,14 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ + else if (!strncmp(con->uri, "/jobs", 5)) + { + cupsdSetStringf(&con->command, "%s/cgi-bin/jobs.cgi", ServerBin); +- if (con->uri[5] && con->uri[6]) ++ if (con->uri[5] && con->uri[6]) + cupsdSetString(&con->options, con->uri + 5); + else + cupsdSetString(&con->options, NULL); + } +- else if (!strncmp(con->uri, "/printers", 9)) ++ else if (!strncmp(con->uri, "/printers", 9)) + { +- if (strlen(con->uri) > 10 && !cupsdFindPrinter(con->uri + 10)) ++ if (strlen(con->uri) > 10 && con->uri[10] != '?' && !cupsdFindPrinter(con->uri + 10)) + { + if (!cupsdSendError(con, HTTP_STATUS_NOT_FOUND, CUPSD_AUTH_NONE)) + { +-- +2.45.0 diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD index e0b75835c..2fec7fb47 100644 --- a/extra/cups/PKGBUILD +++ b/extra/cups/PKGBUILD @@ -6,8 +6,8 @@ pkgbase="cups" pkgname=('libcups' 'cups') pkgver=2.4.8 -pkgrel=1 -epoch=1 +pkgrel=2 +epoch=2 arch=('x86_64') options=(!distcc) license=('Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause') @@ -23,6 +23,7 @@ source=(https://github.com/OpenPrinting/cups/releases/download/v${pkgver}/cups-$ # bugfixes cups-freebind.patch guid.patch + 0001-Fix-HTTP-query-in-web-interface-fixes-954.patch ) sha256sums=('75c326b4ba73975efcc9a25078c4b04cdb4ee333caaad0d0823dbd522c6479a0' 'SKIP' @@ -31,7 +32,8 @@ sha256sums=('75c326b4ba73975efcc9a25078c4b04cdb4ee333caaad0d0823dbd522c6479a0' '06173dfaea37bdd9b39b3e09aba98c34ae7112a2f521db45a688907d8848caa2' 'f0b15192952c151b1843742c87850ff3a7d0f3ba5dd236ed16623ef908472ad7' '3385047b9ac8a7b13aeb8f0ca55d15f793ce7283516db0155fe28a67923c592d' - '0bf6a75ba1b051771f155d9a5d36b307a6d40c6857d645b250fe93f3fb713474') + '1b1c3268bdff6627b78070b6cd9abec6ef41572c27abbafccb237199f7137653' + '2fb4bf61c2c9322d4f3595553d2aa637fee375cc93383922494fd7f76f013e84') #validpgpkeys=('3737FD0D0E63B30172440D2DDBA3A7AB08D76223') # CUPS.org (CUPS.org PGP key) #validpgpkeys+=('45D083946E3035282B3CCA9AF434104235DA97EB') # "CUPS.org " #validpgpkeys+=('845464660B686AAB36540B6F999559A027815955') # "Michael R Sweet " @@ -54,6 +56,9 @@ prepare() { # FS#56818 - https://github.com/apple/cups/issues/5236 patch -Np1 -i "${srcdir}"/guid.patch + # Fix HTTP query in web interface - #1 + patch -Np1 -i "${srcdir}"/0001-Fix-HTTP-query-in-web-interface-fixes-954.patch + # Rebuild configure script aclocal -I config-scripts autoconf -I config-scripts diff --git a/extra/cups/guid.patch b/extra/cups/guid.patch index b1bd19232..940dcc0f5 100644 --- a/extra/cups/guid.patch +++ b/extra/cups/guid.patch @@ -1,12 +1,13 @@ --- cups-2.4.0/scheduler/cups-exec.c 2021-11-29 16:19:34.235186064 +0100 +++ cups-2.4.0/scheduler/cups-exec.c.new 2021-11-29 16:25:30.764049649 +0100 -@@ -134,9 +134,14 @@ main(int argc, /* I - Number of command-line args */ +@@ -134,9 +134,15 @@ main(int argc, /* I - Number of command-line args */ # if CUPS_SNAP if (setgroups(0, NULL)) # else - if (setgroups(1, &gid)) -# endif /* CUPS_SNAP */ +#include ++#include + struct passwd * pwd = getpwuid(uid); + if(initgroups(pwd->pw_name,pwd->pw_gid)) + { @@ -19,13 +20,14 @@ exit(errno + 100); --- cups-2.4.0/scheduler/util.c 2021-11-29 15:27:31.000000000 +0100 +++ cups-2.4.0/scheduler/util.c.new 2021-11-29 16:29:58.810719066 +0100 -@@ -296,7 +296,16 @@ +@@ -296,7 +296,17 @@ */ if (!getuid() && user) - setuid(user); /* Run as restricted user */ + { +#include ++#include + struct passwd * pwd = getpwuid(user); + if(initgroups(pwd->pw_name,pwd->pw_gid)) + {