Compare commits

..

No commits in common. "rawhide" and "f34" have entirely different histories.

4 changed files with 108 additions and 51 deletions

3
.gitignore vendored
View file

@ -9,6 +9,3 @@ libXt-1.0.7.tar.bz2
/libXt-1.1.5.tar.bz2
/libXt-20190424.tar.bz2
/libXt-1.2.0.tar.bz2
/libXt-1.2.1.tar.bz2
/libXt-1.3.0.tar.xz
/libXt-1.3.1.tar.xz

View file

@ -0,0 +1,100 @@
From f3079e509c5cf60042ae2261499ee13b6b02498a Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Thu, 6 Feb 2020 13:45:35 -0500
Subject: [PATCH] xt: Work around a compiler issue with gcc 10
GRABEXT() is used to look up a pointer that sometimes lives just past
the end of an XtServerGrabRec. Whether it's really there or not depends
on XtServerGrabRec::hasExt. In a couple of places, we build those
structs on the stack and pass them to other functions; such structs
always have hasExt == 0, so GRABEXT would never get called in practice.
However, there exists a bug in gcc 10 - more or less difficult to hit,
depending on your compiler options and architecture - where it would not
notice that the dereference after GRABEXT is dead code, at which point
it looks like you're dereferencing one past the end of the array, which
is illegal, and you you get:
PassivGrab.c:292:35: error: array subscript 0 is outside array bounds
of 'XtServerGrabRec[1]' {aka 'struct _XtServerGrabRec[1]'}
[-Werror=array-bounds]
As a completely stupid workaround, build those on-stack structs as
arrays of two, so that the (dead) dereference looks like it's pointing
into the dummy member of the array. This is almost certainly a compiler
bug and I don't encourage merging this patch upstream, but if you need
to build libXt with gcc 10 absolutely right this second, here it is.
For details on the gcc issue, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93582
---
src/PassivGrab.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/PassivGrab.c b/src/PassivGrab.c
index bece0d9..b174d40 100644
--- a/src/PassivGrab.c
+++ b/src/PassivGrab.c
@@ -553,7 +553,7 @@ XtServerGrabPtr _XtCheckServerGrabsOnWidget (
_XtBoolean isKeyboard)
{
register XtServerGrabPtr grab;
- XtServerGrabRec tempGrab;
+ XtServerGrabRec tempGrab[2];
XtServerGrabPtr *passiveListPtr;
XtPerWidgetInput pwi;
@@ -577,13 +577,13 @@ XtServerGrabPtr _XtCheckServerGrabsOnWidget (
/* Take only the lower thirteen bits as modifier state. The X Keyboard
* Extension may be representing keyboard group state in two upper bits.
*/
- tempGrab.widget = widget;
- tempGrab.keybut = (KeyCode) event->xkey.keycode; /* also xbutton.button */
- tempGrab.modifiers = event->xkey.state & 0x1FFF; /*also xbutton.state*/
- tempGrab.hasExt = False;
+ tempGrab[0].widget = widget;
+ tempGrab[0].keybut = (KeyCode) event->xkey.keycode; /* also xbutton.button */
+ tempGrab[0].modifiers = event->xkey.state & 0x1FFF; /*also xbutton.state*/
+ tempGrab[0].hasExt = False;
for (grab = *passiveListPtr; grab; grab = grab->next) {
- if (GrabMatchesSecond(&tempGrab, grab))
+ if (GrabMatchesSecond(tempGrab, grab))
return (grab);
}
return (XtServerGrabPtr)NULL;
@@ -775,17 +775,17 @@ void UngrabKeyOrButton (
Modifiers modifiers,
Boolean isKeyboard)
{
- XtServerGrabRec tempGrab;
+ XtServerGrabRec tempGrab[2];
XtPerWidgetInput pwi;
XtCheckSubclass(widget, coreWidgetClass,
"in XtUngrabKey or XtUngrabButton");
/* Build a temporary grab list entry */
- tempGrab.widget = widget;
- tempGrab.modifiers = (unsigned short) modifiers;
- tempGrab.keybut = (KeyCode) keyOrButton;
- tempGrab.hasExt = False;
+ tempGrab[0].widget = widget;
+ tempGrab[0].modifiers = (unsigned short) modifiers;
+ tempGrab[0].keybut = (KeyCode) keyOrButton;
+ tempGrab[0].hasExt = False;
LOCK_PROCESS;
pwi = _XtGetPerWidgetInput(widget, FALSE);
@@ -817,7 +817,7 @@ void UngrabKeyOrButton (
/* Delete all entries which are encompassed by the specified grab. */
DeleteServerGrabFromList(isKeyboard ? &pwi->keyList : &pwi->ptrList,
- &tempGrab);
+ tempGrab);
}
void XtGrabKey (
--
2.23.0

View file

@ -4,19 +4,21 @@
Summary: X.Org X11 libXt runtime library
Name: libXt
Version: 1.3.1
Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
License: MIT AND HPND-sell-variant AND SMLNJ AND MIT-open-group AND X11
Version: 1.2.0
Release: 4%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist}
License: MIT
URL: https://www.x.org
%if 0%{?gitdate}
Source0: %{tarball}-%{gitdate}.tar.xz
Source0: %{tarball}-%{gitdate}.tar.bz2
Source1: make-git-snapshot.sh
Source2: commitid
%else
Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.xz
Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2
%endif
Patch0: 0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch
Requires: libX11%{?_isa} >= 1.6
BuildRequires: make
@ -108,48 +110,6 @@ cp -p COPYING ${RPM_BUILD_ROOT}%{_datadir}/doc/%{name}/COPYING
%{_mandir}/man3/*.3*
%changelog
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Nov 18 2024 José Expósito <jexposit@redhat.com> - 1.3.1-1
- libXt 1.3.1
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Oct 05 2023 José Expósito <jexposit@redhat.com> - 1.3.0-1
- libXt 1.3.0
* Wed Sep 06 2023 Benjamin Tissoires <benjamin.tissoires@redhat.com> - 1.2.1-6
- SPDX migration
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Sep 21 2021 Benjamin Tissoires <benjamin.tissoires@redhat.com> 1.2.1-1
- libXt 1.2.1
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

View file

@ -1 +1 @@
SHA512 (libXt-1.3.1.tar.xz) = c220292f60b0f53134cf9364831a32bbaa9fa6bbb3a7143e917920957b7a48c616e946042747089f29ea9d8a18ecd64de620bcaf56d82462e7107de906f5db38
SHA512 (libXt-1.2.0.tar.bz2) = 06248508b6fe5dfba8ceb4518475f656162351d78136eeb5d65086d680dabe9aca7bba3c94347f9c13ef03f82dab3ac19d0952ee610bc8c51c14cee7cf65f0b1