Accepting request 677995 from home:vliaskovitis:branches:Printing

Add issue5509-fix-utf-8-validation-issue.patch (bsc#1118118)

OBS-URL: https://build.opensuse.org/request/show/677995
OBS-URL: https://build.opensuse.org/package/show/Printing/cups?expand=0&rev=357
This commit is contained in:
Johannes Meixner 2019-02-21 12:56:32 +00:00 committed by Git OBS Bridge
parent c732cbbd95
commit 5427169286
4 changed files with 99 additions and 7 deletions

View File

@ -1,8 +1,5 @@
libcups2
provides "cups-libs-<targettype> = <version>"
obsoletes "cups-libs-<targettype> < <version>"
libcupscgi1
libcupsimage2
libcupsmime1
libcupsppdc1
cups-devel

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Thu Feb 21 12:44:01 CET 2019 - vliaskovitis@suse.com
- Add issue5509-fix-utf-8-validation-issue.patch (bsc#1118118)
Fixes https://github.com/apple/cups/issues/5509
- Remove libcupscgi1, libcupsmime1, libcupsppdc1 from
baselibs.conf
-------------------------------------------------------------------
Mon Dec 10 14:09:12 CET 2018 - jsmeix@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package cups
#
# Copyright (c) 2018 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@ -60,6 +60,8 @@ Patch11: cups-2.1.0-default-webcontent-path.patch
Patch12: cups-2.1.0-cups-systemd-socket.patch
# Patch42 Let cupsd start after possible network connection (boo#1111351)
Patch42: let-cupsd-start-after-network.patch
# Patch43 Fix UTF-8 validation issue (bsc#1118118, Issue #5509)
Patch43: issue5509-fix-utf-8-validation-issue.patch
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
Patch100: cups-pam.diff
@ -201,7 +203,6 @@ operation.
%package client
Summary: CUPS Client Programs
Group: Hardware/Printing
# Require the exact matching version-release of the libcups* sub-packages because
# non-matching CUPS libraries may let CUPS software crash (e.g. segfault)
# because all CUPS software is provided as one single CUPS source tarball
@ -211,6 +212,7 @@ Group: Hardware/Printing
# on the same package repository where the cups package is because
# all are built simultaneously from the same cups source package
# and all required packages are provided on the same repository:
Group: Hardware/Printing
Requires: libcups2 = %{version}-%{release}
Requires: libcupsimage2 = %{version}-%{release}
# Conflicts with other print spoolers which provide same binaries like /usr/bin/lp and so on:
@ -229,13 +231,13 @@ System V and Berkeley print systems.
%package devel
Summary: Development Environment for CUPS
Group: Development/Libraries/C and C++
# Do not require the exact matching version-release
# of the native CUPS libraries (i.e. the libcups* sub-packages)
# but only CUPS libraries with matching version because
# for building third-party software which uses only the CUPS public API
# there are no CUPS-internal dependencies via CUPS private API calls
# (the latter would require the exact matching CUPS libraries version-release):
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libcups2 = %{version}
Requires: libcupsimage2 = %{version}
@ -279,6 +281,7 @@ printer drivers for CUPS.
#patch12 -b cups-systemd-socket.orig
# Patch42 Let cupsd start after possible network connection (boo#1111351)
%patch42 -p0
%patch43 -p1
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
%patch100 -b cups-pam.orig

View File

@ -0,0 +1,84 @@
Index: cups-2.3b6/cups/ipp.c
===================================================================
--- cups-2.3b6.orig/cups/ipp.c
+++ cups-2.3b6/cups/ipp.c
@@ -4909,30 +4909,24 @@ ippValidateAttribute(
{
if ((*ptr & 0xe0) == 0xc0)
{
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
+ if ((ptr[1] & 0xc0) != 0x80)
break;
+
+ ptr ++;
}
else if ((*ptr & 0xf0) == 0xe0)
{
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
- break;
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
+ if ((ptr[1] & 0xc0) != 0x80 || (ptr[2] & 0xc0) != 0x80)
break;
+
+ ptr += 2;
}
else if ((*ptr & 0xf8) == 0xf0)
{
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
- break;
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
- break;
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
+ if ((ptr[1] & 0xc0) != 0x80 || (ptr[2] & 0xc0) != 0x80 || (ptr[3] & 0xc0) != 0x80)
break;
+
+ ptr += 3;
}
else if (*ptr & 0x80)
break;
@@ -4970,30 +4964,24 @@ ippValidateAttribute(
{
if ((*ptr & 0xe0) == 0xc0)
{
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
+ if ((ptr[1] & 0xc0) != 0x80)
break;
+
+ ptr ++;
}
else if ((*ptr & 0xf0) == 0xe0)
{
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
- break;
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
+ if ((ptr[1] & 0xc0) != 0x80 || (ptr[2] & 0xc0) != 0x80)
break;
+
+ ptr += 2;
}
else if ((*ptr & 0xf8) == 0xf0)
{
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
- break;
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
- break;
- ptr ++;
- if ((*ptr & 0xc0) != 0x80)
+ if ((ptr[1] & 0xc0) != 0x80 || (ptr[2] & 0xc0) != 0x80 || (ptr[3] & 0xc0) != 0x80)
break;
+
+ ptr += 3;
}
else if (*ptr & 0x80)
break;