Files
RedBear-OS/local/recipes/tools/diffutils/diffutils.patch
T
vasilito 311a96bc94 qt/qtsvg: apply CVE-2026-6210 patch (heap-overflow in QSvgMarker::drawHelper)
Cherry-picked from Qt upstream (commit e488f852fa18c2afc2842a88eff8f66ad4105a45).
Original patch source:
https://download.qt.io/official_releases/qt/6.11/CVE-2026-6210-qtsvg-6.11.diff

Fix: Test types of nodes before downcasting them. A bad cast in
QSvgMarker::drawHelper led to endless recursion resulting in a heap
overflow. While fixing that, another similar case was also fixed.
2026-07-11 01:36:28 +03:00

77 lines
2.1 KiB
Diff

--- diffutils-3.12/lib/cmpbuf.c 2025-01-12 21:27:47.000000000 +0300
+++ diffutils-3.12-new/lib/cmpbuf.c 2026-07-11 01:26:55.996990194 +0300
@@ -84,8 +84,8 @@
ancient AIX hosts that set errno to EINTR after uncaught
SIGCONT. See <news:1r77ojINN85n@ftp.UU.NET>
(1993-04-22). */
- if (! SA_RESTART && errno == EINTR)
- continue;
+ /*if (! SA_RESTART && errno == EINTR)
+ continue;*/
return -1;
}
--- diffutils-3.12/lib/getdtablesize.c 2025-01-02 05:33:12.000000000 +0300
+++ diffutils-3.12-new/lib/getdtablesize.c 2026-07-11 01:26:55.997027743 +0300
@@ -109,6 +109,7 @@
int
getdtablesize (void)
{
+#if !defined(__redox__)
struct rlimit lim;
if (getrlimit (RLIMIT_NOFILE, &lim) == 0
@@ -117,6 +118,7 @@
&& lim.rlim_cur != RLIM_SAVED_CUR
&& lim.rlim_cur != RLIM_SAVED_MAX)
return lim.rlim_cur;
+#endif
return INT_MAX;
}
--- diffutils-3.12/lib/getprogname.c 2025-01-02 05:33:12.000000000 +0300
+++ diffutils-3.12-new/lib/getprogname.c 2026-07-11 01:26:55.997103089 +0300
@@ -55,6 +55,14 @@
# include <string.h>
#endif
+#if defined(__redox__)
+# include <string.h>
+# include <unistd.h>
+# include <stdio.h>
+# include <fcntl.h>
+# include <limits.h>
+#endif
+
#include "basename-lgpl.h"
#ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Solaris >= 11, Cygwin, Android API level >= 21 */
@@ -297,6 +305,17 @@
close (fd);
}
return "?";
+# elif defined(__redox__)
+ char filename[PATH_MAX];
+ int fd = open ("sys:exe", O_RDONLY);
+ if (fd > 0) {
+ int len = read(fd, filename, PATH_MAX-1);
+ if (len > 0) {
+ filename[len] = '\x00';
+ return strdup(filename);
+ }
+ }
+ return "?";
# else
# error "getprogname module not ported to this OS"
# endif
--- diffutils-3.12/lib/sigprocmask.c 2025-01-02 05:33:12.000000000 +0300
+++ diffutils-3.12-new/lib/sigprocmask.c 2026-07-11 01:26:55.997143937 +0300
@@ -126,6 +126,7 @@
return 0;
}
+#if !defined(__redox__)
int
sigemptyset (sigset_t *set)
{