Accepting request 1075203 from home:alarrosa:branches:Printing
- Add patch to fix hplip applying printf string format parsing to printer attributes returned from CUPS (such as "dnssd://foo%20series._ipp._tcp.local/?uuid=...") which results in a segfault (boo#1209866, lp#2013185): * fix-printer-attributes-parsing.patch OBS-URL: https://build.opensuse.org/request/show/1075203 OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=235
This commit is contained in:
parent
95f78ad673
commit
d49ed55bcf
60
fix-printer-attributes-parsing.patch
Normal file
60
fix-printer-attributes-parsing.patch
Normal file
@ -0,0 +1,60 @@
|
||||
Index: hplip-3.22.10/protocol/hp_ipp.c
|
||||
===================================================================
|
||||
--- hplip-3.22.10.orig/protocol/hp_ipp.c
|
||||
+++ hplip-3.22.10/protocol/hp_ipp.c
|
||||
@@ -43,6 +43,12 @@ Boston, MA 02110-1301, USA.
|
||||
#define _STRINGIZE(x) #x
|
||||
#define STRINGIZE(x) _STRINGIZE(x)
|
||||
|
||||
+#define hplip_strlcpy(dst, src, size) \
|
||||
+ do { \
|
||||
+ if (!memccpy(dst, src, '\0', size)) \
|
||||
+ dst[size - 1] = '\0'; \
|
||||
+ } while (0)
|
||||
+
|
||||
|
||||
http_t* acquireCupsInstance()
|
||||
{
|
||||
@@ -113,7 +119,7 @@ int addCupsPrinter(char *name, char *dev
|
||||
}
|
||||
|
||||
if ( info == NULL )
|
||||
- snprintf( info,sizeof(info), name );
|
||||
+ hplip_strlcpy( info, name, sizeof(info));
|
||||
|
||||
sprintf( printer_uri, "ipp://localhost/printers/%s", name );
|
||||
|
||||
@@ -514,27 +520,27 @@ int __parsePrinterAttributes(ipp_t *resp
|
||||
|
||||
if ( strcmp(attr_name, "printer-name") == 0 &&
|
||||
val_tag == IPP_TAG_NAME ) {
|
||||
- snprintf(t_printer->name, sizeof(t_printer->name),ippGetString(attr, 0, NULL) );
|
||||
+ hplip_strlcpy(t_printer->name, ippGetString(attr, 0, NULL), sizeof(t_printer->name) );
|
||||
}
|
||||
else if ( strcmp(attr_name, "device-uri") == 0 &&
|
||||
val_tag == IPP_TAG_URI ) {
|
||||
- snprintf(t_printer->device_uri,sizeof(t_printer->device_uri), ippGetString(attr, 0, NULL) );
|
||||
+ hplip_strlcpy(t_printer->device_uri, ippGetString(attr, 0, NULL), sizeof(t_printer->device_uri) );
|
||||
}
|
||||
else if ( strcmp(attr_name, "printer-uri-supported") == 0 &&
|
||||
val_tag == IPP_TAG_URI ) {
|
||||
- snprintf(t_printer->printer_uri,sizeof(t_printer->printer_uri), ippGetString(attr, 0, NULL) );
|
||||
+ hplip_strlcpy(t_printer->printer_uri, ippGetString(attr, 0, NULL), sizeof(t_printer->printer_uri) );
|
||||
}
|
||||
else if ( strcmp(attr_name, "printer-info") == 0 &&
|
||||
val_tag == IPP_TAG_TEXT ) {
|
||||
- snprintf(t_printer->info,sizeof(t_printer->info), ippGetString(attr, 0, NULL) );
|
||||
+ hplip_strlcpy(t_printer->info, ippGetString(attr, 0, NULL), sizeof(t_printer->info) );
|
||||
}
|
||||
else if ( strcmp(attr_name, "printer-location") == 0 &&
|
||||
val_tag == IPP_TAG_TEXT ) {
|
||||
- snprintf(t_printer->location,sizeof(t_printer->location),ippGetString(attr, 0, NULL) );
|
||||
+ hplip_strlcpy(t_printer->location, ippGetString(attr, 0, NULL), sizeof(t_printer->location) );
|
||||
}
|
||||
else if ( strcmp(attr_name, "printer-make-and-model") == 0 &&
|
||||
val_tag == IPP_TAG_TEXT ) {
|
||||
- snprintf(t_printer->make_model,sizeof(t_printer->make_model),ippGetString(attr, 0, NULL) );
|
||||
+ hplip_strlcpy(t_printer->make_model, ippGetString(attr, 0, NULL), sizeof(t_printer->make_model));
|
||||
}
|
||||
else if ( strcmp(attr_name, "printer-state") == 0 &&
|
||||
val_tag == IPP_TAG_ENUM ) {
|
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 29 04:59:28 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Add patch to fix hplip applying printf string format parsing to
|
||||
printer attributes returned from CUPS (such as
|
||||
"dnssd://foo%20series._ipp._tcp.local/?uuid=...") which results
|
||||
in a segfault (boo#1209866, lp#2013185):
|
||||
* fix-printer-attributes-parsing.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 2 14:08:12 UTC 2023 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
|
@ -86,6 +86,8 @@ Patch403: Revert-changes-from-3.18.5-that-break-hp-setup-for-f.patch
|
||||
# PATCH-FIX-UPSTREAM: https://bugs.launchpad.net/hplip/+bug/1879445
|
||||
Patch404: hplip-3.20.6-python-includes.patch
|
||||
Patch500: hplip-missing-drivers.patch
|
||||
# PATCH-FIX-UPSTREAM boo#1209866 lp#2013185
|
||||
Patch501: fix-printer-attributes-parsing.patch
|
||||
BuildRequires: %{pymod devel}
|
||||
BuildRequires: %{pymod qt5-devel}
|
||||
BuildRequires: %{pymod xml}
|
||||
@ -331,6 +333,7 @@ This sub-package is only required by developers.
|
||||
%patch403 -p1
|
||||
%patch404 -p1
|
||||
%patch500 -p1
|
||||
%patch501 -p1
|
||||
# replace "env" shebang and "/usr/bin/python" with real executable
|
||||
find . -name '*.py' -o -name pstotiff | \
|
||||
xargs -n 1 sed -i '1s,^#!\(%{_bindir}/env python\|%{_bindir}/python\),#!%{pyexe},'
|
||||
|
Loading…
Reference in New Issue
Block a user