Control: tags 1060458 + pending

Dear maintainer,

I've prepared an NMU for perl-tk (versioned as 1:804.036+dfsg1-1.1) and
uploaded it to DELAYED/1. Please feel free to tell me if I
should delay it longer.

Sorry for the rush, but this is blocking the perl 5.38 transition …


Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   
diff -Nru perl-tk-804.036+dfsg1/debian/changelog perl-tk-804.036+dfsg1/debian/changelog
--- perl-tk-804.036+dfsg1/debian/changelog	2023-09-23 14:51:33.000000000 +0200
+++ perl-tk-804.036+dfsg1/debian/changelog	2024-01-13 19:08:35.000000000 +0100
@@ -1,3 +1,12 @@
+perl-tk (1:804.036+dfsg1-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix "FTBFS with Perl 5.38 on big-endian 64-bit: test failures":
+    add Niko Tyni's patch to fix STRLEN vs int pointer confusion.
+    (Closes: #1060458)
+
+ -- gregor herrmann <gre...@debian.org>  Sat, 13 Jan 2024 19:08:35 +0100
+
 perl-tk (1:804.036+dfsg1-1) unstable; urgency=medium
 
   * replaced the build dependency libfreetype6-dev by libfreetype-dev
diff -Nru perl-tk-804.036+dfsg1/debian/patches/0001-Fix-STRLEN-vs-int-pointer-confusion-in-Tcl_GetByteAr.patch perl-tk-804.036+dfsg1/debian/patches/0001-Fix-STRLEN-vs-int-pointer-confusion-in-Tcl_GetByteAr.patch
--- perl-tk-804.036+dfsg1/debian/patches/0001-Fix-STRLEN-vs-int-pointer-confusion-in-Tcl_GetByteAr.patch	1970-01-01 01:00:00.000000000 +0100
+++ perl-tk-804.036+dfsg1/debian/patches/0001-Fix-STRLEN-vs-int-pointer-confusion-in-Tcl_GetByteAr.patch	2024-01-13 19:00:28.000000000 +0100
@@ -0,0 +1,45 @@
+From a26233c844c52f49ef9cca5f88dd9063aac60d0f Mon Sep 17 00:00:00 2001
+From: Niko Tyni <nt...@debian.org>
+Date: Thu, 11 Jan 2024 18:28:58 +0000
+Subject: [PATCH] Fix STRLEN vs int pointer confusion in
+ Tcl_GetByteArrayFromObj()
+
+Perl 5.37.2, more precisely commit
+
+ https://github.com/Perl/perl5/commit/1ef9039bccbfe64f47f201b6cfb7d6d23e0b08a7
+
+changed the implementation of SvPV() et al., breaking t/balloon.t,
+t/canvas2.t and t/photo.t on big-endian 64-bit architectures such as
+ppc64 and s390x because StringMatchGIF() no longer recognized GIF files.
+
+This is because Tcl_GetByteArrayFromObj() was calling SvPV() with an int
+pointer instead of a correct STRLEN pointer, and the new implementation
+is more sensitive to this: it assigns the pointers as-is, resulting in
+the int pointer pointing at the wrong end of the 64-bit length.
+
+Other functions taking a length pointer, at least Tcl_GetStringFromObj()
+already seem to do things correctly, so presumably this is not a
+systematic issue.
+---
+ objGlue.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/objGlue.c b/objGlue.c
+index d4927ea..dbd6a50 100644
+--- a/objGlue.c
++++ b/objGlue.c
+@@ -627,7 +627,10 @@ Tcl_GetByteArrayFromObj(Tcl_Obj * objPtr, int * lengthPtr)
+  sv_utf8_downgrade(objPtr, 0);
+  if (lengthPtr)
+   {
+-   return (unsigned char *) SvPV(objPtr, *lengthPtr);
++   STRLEN len;
++   unsigned char *s = SvPV(objPtr, len);
++   *lengthPtr = len;
++   return s;
+   }
+  else
+   {
+-- 
+2.30.2
+
diff -Nru perl-tk-804.036+dfsg1/debian/patches/series perl-tk-804.036+dfsg1/debian/patches/series
--- perl-tk-804.036+dfsg1/debian/patches/series	2023-09-22 17:49:03.000000000 +0200
+++ perl-tk-804.036+dfsg1/debian/patches/series	2024-01-13 19:00:28.000000000 +0100
@@ -1,3 +1,4 @@
 20-pngsuite-lic.patch
 60-man-name.patch
 70-spellings.patch
+0001-Fix-STRLEN-vs-int-pointer-confusion-in-Tcl_GetByteAr.patch

Attachment: signature.asc
Description: Digital Signature

Reply via email to