fix invalid pointer during resolving mDNS uri
This commit is contained in:
parent
0b30e4cfe1
commit
2e3c51880e
@ -0,0 +1,36 @@
|
||||
From 020609ad9eb84ab5a4c602ff604b2f208a6cdb8d Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
||||
Date: Wed, 22 Jun 2022 09:23:45 +0200
|
||||
Subject: [PATCH] scheduler/ipp.c: Allocate device_uri via cupsdSetString()
|
||||
|
||||
If a driverless printer has .local in its URI, we resolve the
|
||||
URI and save the resolved one as new device URI. The problem was that
|
||||
a local pointer was assigned to the structure which is passed to the
|
||||
function as parameter, so the pointer became invalid once the execution
|
||||
left the create_local_bg_thread() function.
|
||||
|
||||
We need to allocate the device URI via cupsdSetString() - the string is
|
||||
then freed when the printer is deleted or cupsd shuts down.
|
||||
|
||||
Fixes #419.
|
||||
---
|
||||
CHANGES.md | 1 +
|
||||
scheduler/ipp.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
|
||||
index 3a849bdb5..b722712f6 100644
|
||||
--- a/scheduler/ipp.c
|
||||
+++ b/scheduler/ipp.c
|
||||
@@ -5307,7 +5307,7 @@ create_local_bg_thread(
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
- printer->device_uri = uri;
|
||||
+ cupsdSetString(&printer->device_uri, uri);
|
||||
}
|
||||
|
||||
if (httpSeparateURI(HTTP_URI_CODING_ALL, printer->device_uri, scheme, sizeof(scheme), userpass, sizeof(userpass), host, sizeof(host), &port, resource, sizeof(resource)) < HTTP_URI_STATUS_OK)
|
||||
--
|
||||
2.37.1
|
||||
|
@ -15,7 +15,7 @@ Summary: CUPS printing system
|
||||
Name: cups
|
||||
Epoch: 1
|
||||
Version: 2.4.2
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
License: ASL 2.0
|
||||
Url: https://openprinting.github.io/cups/
|
||||
# Apple stopped uploading the new versions into github, use OpenPrinting fork
|
||||
@ -67,6 +67,7 @@ Patch100: cups-lspp.patch
|
||||
%endif
|
||||
|
||||
#### UPSTREAM PATCHES (starts with 1000) ####
|
||||
Patch1001: 0001-scheduler-ipp.c-Allocate-device_uri-via-cupsdSetStri.patch
|
||||
|
||||
##### Patches removed because IMHO they aren't no longer needed
|
||||
##### but still I'll leave them in git in case their removal
|
||||
@ -270,6 +271,7 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in
|
||||
%patch13 -p1 -b .dymo-deviceid
|
||||
|
||||
# UPSTREAM PATCHES
|
||||
%patch1001 -p1 -b .invalid-pointer-uri
|
||||
|
||||
|
||||
%if %{lspp}
|
||||
@ -660,6 +662,9 @@ rm -f %{cups_serverbin}/backend/smb
|
||||
%{_mandir}/man7/ippeveps.7.gz
|
||||
|
||||
%changelog
|
||||
* Tue Aug 02 2022 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.4.2-3
|
||||
- fix invalid pointer during resolving mDNS uri
|
||||
|
||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.4.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user