public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/jq] rawhide: removed old upstreamed patches
@ 2026-06-30 21:52 Filipe Rosset
  0 siblings, 0 replies; only message in thread
From: Filipe Rosset @ 2026-06-30 21:52 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/jq
            Branch : rawhide
            Commit : 5fb34089cd978d7e112154d5501098d668a8efeb
            Author : Filipe Rosset <filiperosset@fedoraproject.org>
            Date   : 2026-06-20T18:41:59-03:00
            Stats  : +0/-365 in 6 file(s)
            URL    : https://src.fedoraproject.org/rpms/jq/c/5fb34089cd978d7e112154d5501098d668a8efeb?branch=rawhide

            Log:
            removed old upstreamed patches

Signed-off-by: Filipe Rosset <filiperosset@fedoraproject.org>

---
diff --git a/CVE-2026-32316.patch b/CVE-2026-32316.patch
deleted file mode 100644
index 29d08c9..0000000
--- a/CVE-2026-32316.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From e47e56d226519635768e6aab2f38f0ab037c09e5 Mon Sep 17 00:00:00 2001
-From: itchyny <itchyny@cybozu.co.jp>
-Date: Thu, 12 Mar 2026 20:28:43 +0900
-Subject: [PATCH] Fix heap buffer overflow in `jvp_string_append` and
- `jvp_string_copy_replace_bad`
-
-In `jvp_string_append`, the allocation size `(currlen + len) * 2` could
-overflow `uint32_t` when `currlen + len` exceeds `INT_MAX`, causing a small
-allocation followed by a large `memcpy`.
-
-In `jvp_string_copy_replace_bad`, the output buffer size calculation
-`length * 3 + 1` could overflow `uint32_t`, again resulting in a small
-allocation followed by a large write.
-
-Add overflow checks to both functions to return an error for strings
-that would exceed `INT_MAX` in length. Fixes CVE-2026-32316.
----
- src/jv.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/src/jv.c b/src/jv.c
-index 722a539391..2a62b48419 100644
---- a/src/jv.c
-+++ b/src/jv.c
-@@ -1114,7 +1114,12 @@ static jv jvp_string_copy_replace_bad(const char* data, uint32_t length) {
-   const char* end = data + length;
-   const char* i = data;
- 
--  uint32_t maxlength = length * 3 + 1; // worst case: all bad bytes, each becomes a 3-byte U+FFFD
-+  // worst case: all bad bytes, each becomes a 3-byte U+FFFD
-+  uint64_t maxlength = (uint64_t)length * 3 + 1;
-+  if (maxlength >= INT_MAX) {
-+    return jv_invalid_with_msg(jv_string("String too long"));
-+  }
-+
-   jvp_string* s = jvp_string_alloc(maxlength);
-   char* out = s->data;
-   int c = 0;
-@@ -1174,6 +1179,10 @@ static uint32_t jvp_string_remaining_space(jvp_string* s) {
- static jv jvp_string_append(jv string, const char* data, uint32_t len) {
-   jvp_string* s = jvp_string_ptr(string);
-   uint32_t currlen = jvp_string_length(s);
-+  if ((uint64_t)currlen + len >= INT_MAX) {
-+    jv_free(string);
-+    return jv_invalid_with_msg(jv_string("String too long"));
-+  }
- 
-   if (jvp_refcnt_unshared(string.u.ptr) &&
-       jvp_string_remaining_space(s) >= len) {

diff --git a/CVE-2026-33947.patch b/CVE-2026-33947.patch
deleted file mode 100644
index 0b16190..0000000
--- a/CVE-2026-33947.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From fb59f1491058d58bdc3e8dd28f1773d1ac690a1f Mon Sep 17 00:00:00 2001
-From: itchyny <itchyny@cybozu.co.jp>
-Date: Mon, 13 Apr 2026 11:23:40 +0900
-Subject: [PATCH] Limit path depth to prevent stack overflow
-
-Deeply nested path arrays can cause unbounded recursion in
-`jv_setpath`, `jv_getpath`, and `jv_delpaths`, leading to
-stack overflow. Add a depth limit of 10000 to match the
-existing `tojson` depth limit. This fixes CVE-2026-33947.
----
- src/jv_aux.c  | 21 +++++++++++++++++++++
- tests/jq.test | 25 +++++++++++++++++++++++++
- 2 files changed, 46 insertions(+)
-
-diff --git a/src/jv_aux.c b/src/jv_aux.c
-index 018f380b10..fd5ff96684 100644
---- a/src/jv_aux.c
-+++ b/src/jv_aux.c
-@@ -365,6 +365,10 @@ static jv jv_dels(jv t, jv keys) {
-   return t;
- }
- 
-+#ifndef MAX_PATH_DEPTH
-+#define MAX_PATH_DEPTH (10000)
-+#endif
-+
- jv jv_setpath(jv root, jv path, jv value) {
-   if (jv_get_kind(path) != JV_KIND_ARRAY) {
-     jv_free(value);
-@@ -372,6 +376,12 @@ jv jv_setpath(jv root, jv path, jv value) {
-     jv_free(path);
-     return jv_invalid_with_msg(jv_string("Path must be specified as an array"));
-   }
-+  if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) {
-+    jv_free(value);
-+    jv_free(root);
-+    jv_free(path);
-+    return jv_invalid_with_msg(jv_string("Path too deep"));
-+  }
-   if (!jv_is_valid(root)){
-     jv_free(value);
-     jv_free(path);
-@@ -424,6 +434,11 @@ jv jv_getpath(jv root, jv path) {
-     jv_free(path);
-     return jv_invalid_with_msg(jv_string("Path must be specified as an array"));
-   }
-+  if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) {
-+    jv_free(root);
-+    jv_free(path);
-+    return jv_invalid_with_msg(jv_string("Path too deep"));
-+  }
-   if (!jv_is_valid(root)) {
-     jv_free(path);
-     return root;
-@@ -502,6 +517,12 @@ jv jv_delpaths(jv object, jv paths) {
-       jv_free(elem);
-       return err;
-     }
-+    if (jv_array_length(jv_copy(elem)) > MAX_PATH_DEPTH) {
-+      jv_free(object);
-+      jv_free(paths);
-+      jv_free(elem);
-+      return jv_invalid_with_msg(jv_string("Path too deep"));
-+    }
-     jv_free(elem);
-   }
-   if (jv_array_length(jv_copy(paths)) == 0) {
-diff --git a/tests/jq.test b/tests/jq.test
-index 4a84e96c11..0cd5198f8d 100644
---- a/tests/jq.test
-+++ b/tests/jq.test
-@@ -2568,3 +2568,28 @@ true
- reduce range(10001) as $_ ([];[.]) | tojson | contains("<skipped: too deep>")
- null
- true
-+
-+# regression test for CVE-2026-33947
-+setpath([range(10000) | 0]; 0) | flatten
-+null
-+[0]
-+
-+try setpath([range(10001) | 0]; 0) catch .
-+null
-+"Path too deep"
-+
-+getpath([range(10000) | 0])
-+null
-+null
-+
-+try getpath([range(10001) | 0]) catch .
-+null
-+"Path too deep"
-+
-+delpaths([[range(10000) | 0]])
-+null
-+null
-+
-+try delpaths([[range(10001) | 0]]) catch .
-+null
-+"Path too deep"

diff --git a/CVE-2026-39956.patch b/CVE-2026-39956.patch
deleted file mode 100644
index 9bbcd67..0000000
--- a/CVE-2026-39956.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From fdf8ef0f0810e3d365cdd5160de43db46f57ed03 Mon Sep 17 00:00:00 2001
-From: tlsbollei <170938166+tlsbollei@users.noreply.github.com>
-Date: Wed, 8 Apr 2026 21:43:46 +0200
-Subject: [PATCH] Add runtime type checks to f_string_indexes
-
-This fixes CVE-2026-39956.
----
- src/builtin.c | 8 ++++++++
- tests/jq.test | 9 +++++++++
- 2 files changed, 17 insertions(+)
-
-diff --git a/src/builtin.c b/src/builtin.c
-index 90a3af2da9..d33e9fb162 100644
---- a/src/builtin.c
-+++ b/src/builtin.c
-@@ -1306,6 +1306,14 @@ static jv f_string_explode(jq_state *jq, jv a) {
- }
- 
- static jv f_string_indexes(jq_state *jq, jv a, jv b) {
-+  if (jv_get_kind(a) != JV_KIND_STRING) {
-+    jv_free(b);
-+    return type_error(a, "cannot be searched, as it is not a string");
-+  }
-+  if (jv_get_kind(b) != JV_KIND_STRING) {
-+    jv_free(a);
-+    return type_error(b, "is not a string");
-+  }
-   return jv_string_indexes(a, b);
- }
- 
-diff --git a/tests/jq.test b/tests/jq.test
-index 169a7ac81b..4a84e96c11 100644
---- a/tests/jq.test
-+++ b/tests/jq.test
-@@ -1549,6 +1549,15 @@ split("")
- "xababababax"
- [1,7,[1,3,5,7]]
- 
-+# _strindices is used by indices/1 but is callable
-+try _strindices("abc") catch .
-+123
-+"number (123) cannot be searched, as it is not a string"
-+
-+try _strindices(123) catch .
-+"abc"
-+"number (123) is not a string"
-+
- # trim
- # \u000b is vertical tab (\v not supported by json)
- map(trim), map(ltrim), map(rtrim)

diff --git a/CVE-2026-39979.patch b/CVE-2026-39979.patch
deleted file mode 100644
index cc0c3d1..0000000
--- a/CVE-2026-39979.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 2f09060afab23fe9390cce7cb860b10416e1bf5f Mon Sep 17 00:00:00 2001
-From: itchyny <itchyny@cybozu.co.jp>
-Date: Mon, 13 Apr 2026 11:04:52 +0900
-Subject: [PATCH] Fix out-of-bounds read in jv_parse_sized()
-
-This fixes CVE-2026-39979.
-
-Co-authored-by: Mattias Wadman <mattias.wadman@gmail.com>
----
- src/jv_parse.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/jv_parse.c b/src/jv_parse.c
-index aa2054cc09..56847b5eaa 100644
---- a/src/jv_parse.c
-+++ b/src/jv_parse.c
-@@ -893,8 +893,9 @@ jv jv_parse_sized_custom_flags(const char* string, int length, int flags) {
- 
-   if (!jv_is_valid(value) && jv_invalid_has_msg(jv_copy(value))) {
-     jv msg = jv_invalid_get_msg(value);
--    value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%s')",
-+    value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%.*s')",
-                                               jv_string_value(msg),
-+                                              length,
-                                               string));
-     jv_free(msg);
-   }

diff --git a/CVE-2026-40164.patch b/CVE-2026-40164.patch
deleted file mode 100644
index 483316f..0000000
--- a/CVE-2026-40164.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 0c7d133c3c7e37c00b6d46b658a02244fdd3c784 Mon Sep 17 00:00:00 2001
-From: itchyny <itchyny@cybozu.co.jp>
-Date: Mon, 13 Apr 2026 08:53:26 +0900
-Subject: [PATCH] Randomize hash seed to mitigate hash collision DoS attacks
-
-The hash function used a fixed seed, allowing attackers to craft colliding keys
-and cause O(n^2) object parsing performance. Initialize the seed from a random
-source at process startup to prevent the attack. This fixes CVE-2026-40164.
-
-Co-authored-by: Asaf Meizner <asafmeizner@gmail.com>
----
- configure.ac |  2 ++
- src/jv.c     | 34 ++++++++++++++++++++++++++++++++--
- 2 files changed, 34 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5dac42655a..f7067a4341 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -149,6 +149,8 @@ AC_CHECK_MEMBER([struct tm.tm_gmtoff], [AC_DEFINE([HAVE_TM_TM_GMT_OFF],1,[Define
- AC_CHECK_MEMBER([struct tm.__tm_gmtoff], [AC_DEFINE([HAVE_TM___TM_GMT_OFF],1,[Define to 1 if the system has the __tm_gmt_off field in struct tm])],
-                 [], [[#include <time.h>]])
- AC_FIND_FUNC([setlocale], [c], [#include <locale.h>], [0,0])
-+AC_FIND_FUNC([arc4random], [c], [#include <stdlib.h>], [])
-+AC_FIND_FUNC([getentropy], [c], [#include <unistd.h>], [0, 0])
- 
- dnl Figure out if we have the pthread functions we actually need
- AC_FIND_FUNC_NO_LIBS([pthread_key_create], [], [#include <pthread.h>], [NULL, NULL])
-diff --git a/src/jv.c b/src/jv.c
-index 2a62b48419..607ac174f7 100644
---- a/src/jv.c
-+++ b/src/jv.c
-@@ -40,6 +40,10 @@
- #include <limits.h>
- #include <math.h>
- #include <float.h>
-+#include <time.h>
-+#include <unistd.h>
-+#include <fcntl.h>
-+#include <pthread.h>
- 
- #include "jv_alloc.h"
- #include "jv.h"
-@@ -1206,7 +1210,33 @@ static jv jvp_string_append(jv string, const char* data, uint32_t len) {
-   }
- }
- 
--static const uint32_t HASH_SEED = 0x432A9843;
-+static uint32_t hash_seed;
-+static pthread_once_t hash_seed_once = PTHREAD_ONCE_INIT;
-+
-+static void jvp_hash_seed_init(void) {
-+  uint32_t seed;
-+#if defined(HAVE_ARC4RANDOM)
-+  seed = arc4random();
-+#elif defined(HAVE_GETENTROPY)
-+  if (getentropy(&seed, sizeof(seed)) != 0)
-+    seed = (uint32_t)getpid() ^ (uint32_t)time(NULL);
-+#else
-+  int fd = open("/dev/urandom", O_RDONLY);
-+  if (fd >= 0) {
-+    if (read(fd, &seed, sizeof(seed)) != 4)
-+      seed = (uint32_t)getpid() ^ (uint32_t)time(NULL);
-+    close(fd);
-+  } else {
-+    seed = (uint32_t)getpid() ^ (uint32_t)time(NULL);
-+  }
-+#endif
-+  hash_seed = seed;
-+}
-+
-+static uint32_t jvp_hash_seed(void) {
-+  pthread_once(&hash_seed_once, jvp_hash_seed_init);
-+  return hash_seed;
-+}
- 
- static uint32_t rotl32 (uint32_t x, int8_t r){
-   return (x << r) | (x >> (32 - r));
-@@ -1225,7 +1255,7 @@ static uint32_t jvp_string_hash(jv jstr) {
-   int len = (int)jvp_string_length(str);
-   const int nblocks = len / 4;
- 
--  uint32_t h1 = HASH_SEED;
-+  uint32_t h1 = jvp_hash_seed();
- 
-   const uint32_t c1 = 0xcc9e2d51;
-   const uint32_t c2 = 0x1b873593;

diff --git a/skipped_too_deep.patch b/skipped_too_deep.patch
deleted file mode 100644
index cfe87ba..0000000
--- a/skipped_too_deep.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From b29504b4e191a4b1028bd1c252aaab0c62fbdbfa Mon Sep 17 00:00:00 2001
-From: Ish Nagy <50555716+ishnagy@users.noreply.github.com>
-Date: Tue, 14 Oct 2025 07:12:57 +0200
-Subject: [PATCH] Increase the maximum printing depth from 256 to 10000 (fixes
- #3413) (#3414)
-
----
- .github/workflows/ci.yml |  2 +-
- src/jv_print.c           |  2 +-
- tests/jq.test            | 19 +++++++++++++++++++
- 3 files changed, 21 insertions(+), 2 deletions(-)
-
-diff --git a/src/jv_print.c b/src/jv_print.c
-index 791af1798b..f717d079e4 100644
---- a/src/jv_print.c
-+++ b/src/jv_print.c
-@@ -17,7 +17,7 @@
- #include "jv_private.h"
- 
- #ifndef MAX_PRINT_DEPTH
--#define MAX_PRINT_DEPTH (256)
-+#define MAX_PRINT_DEPTH (10000)
- #endif
- 
- #define ESC "\033"
-diff --git a/tests/jq.test b/tests/jq.test
-index 14d98ba169..2471379d0f 100644
---- a/tests/jq.test
-+++ b/tests/jq.test
-@@ -2515,3 +2515,22 @@ strflocaltime("" | ., @uri)
- 0
- ""
- ""
-+
-+# regression tests for #3413
-+# upper range bounds should be in sync with the constants defined at
-+#   src/jv_parse.c:#define MAX_PARSING_DEPTH (N)
-+#   src/jv_print.c:#define MAX_PRINT_DEPTH (N)
-+# (N-1)
-+reduce range(9999) as $_ ([];[.]) | tojson | fromjson | flatten
-+null
-+[]
-+
-+# (N)
-+reduce range(10000) as $_ ([];[.]) | tojson | try (fromjson) catch . | (contains("<skipped: too deep>") | not) and contains("Exceeds depth limit for parsing")
-+null
-+true
-+
-+# (N+1)
-+reduce range(10001) as $_ ([];[.]) | tojson | contains("<skipped: too deep>")
-+null
-+true

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-06-30 21:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-30 21:52 [rpms/jq] rawhide: removed old upstreamed patches Filipe Rosset

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox