Bump version to 3.2.0-4
- Resolves: RHEL-86312 - Crash in trim_changelog() during the Retro Changelog trimming. - Resolves: RHEL-133085 - Replica installation is failing with message MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED - Resolves: RHEL-137072 - CVE-2025-14905 389-ds-base: 389-ds-base: Remote Code Execution and Denial of Service via heap buffer overflow [rhel-10.2] - Resolves: RHEL-138729 - Crash ( Segmentation fault ) in atomic_compare_exchange()
This commit is contained in:
parent
b70343dc0c
commit
dbdcfa7e1b
952
0057-Issue-5853-Update-concread-to-0.5.10.patch
Normal file
952
0057-Issue-5853-Update-concread-to-0.5.10.patch
Normal file
@ -0,0 +1,952 @@
|
||||
From 0e2d9c4288873446dcb3d8bff61c558ff2b6681a Mon Sep 17 00:00:00 2001
|
||||
From: Viktor Ashirov <vashirov@redhat.com>
|
||||
Date: Mon, 23 Feb 2026 09:49:52 +0100
|
||||
Subject: [PATCH] Issue 5853 - Update concread to 0.5.10
|
||||
|
||||
Description:
|
||||
Update concread to 0.5.10 and update Cargo.lock
|
||||
|
||||
Relates: https://github.com/389ds/389-ds-base/issues/5853
|
||||
|
||||
Reviewed by: @droideck (Thanks!)
|
||||
---
|
||||
src/Cargo.lock | 515 +++++++++++++++++++++++----------------
|
||||
src/librslapd/Cargo.toml | 2 +-
|
||||
2 files changed, 312 insertions(+), 205 deletions(-)
|
||||
|
||||
diff --git a/src/Cargo.lock b/src/Cargo.lock
|
||||
index 87aeee852..425371478 100644
|
||||
--- a/src/Cargo.lock
|
||||
+++ b/src/Cargo.lock
|
||||
@@ -2,27 +2,18 @@
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
-[[package]]
|
||||
-name = "addr2line"
|
||||
-version = "0.24.2"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
|
||||
-dependencies = [
|
||||
- "gimli",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "adler2"
|
||||
-version = "2.0.1"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
||||
-
|
||||
[[package]]
|
||||
name = "allocator-api2"
|
||||
version = "0.2.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
|
||||
|
||||
+[[package]]
|
||||
+name = "anyhow"
|
||||
+version = "1.0.102"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
||||
+
|
||||
[[package]]
|
||||
name = "atty"
|
||||
version = "0.2.14"
|
||||
@@ -40,21 +31,6 @@ version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
|
||||
|
||||
-[[package]]
|
||||
-name = "backtrace"
|
||||
-version = "0.3.75"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
|
||||
-dependencies = [
|
||||
- "addr2line",
|
||||
- "cfg-if",
|
||||
- "libc",
|
||||
- "miniz_oxide",
|
||||
- "object",
|
||||
- "rustc-demangle",
|
||||
- "windows-targets",
|
||||
-]
|
||||
-
|
||||
[[package]]
|
||||
name = "base64"
|
||||
version = "0.13.1"
|
||||
@@ -69,9 +45,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
-version = "2.9.1"
|
||||
+version = "2.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
|
||||
+checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
@@ -86,8 +62,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49"
|
||||
dependencies = [
|
||||
"clap",
|
||||
- "heck",
|
||||
- "indexmap",
|
||||
+ "heck 0.4.1",
|
||||
+ "indexmap 1.9.3",
|
||||
"log",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -100,10 +76,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
-version = "1.2.27"
|
||||
+version = "1.2.56"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc"
|
||||
+checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
|
||||
dependencies = [
|
||||
+ "find-msvc-tools",
|
||||
"jobserver",
|
||||
"libc",
|
||||
"shlex",
|
||||
@@ -111,9 +88,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
-version = "1.0.1"
|
||||
+version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
|
||||
+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
@@ -124,7 +101,7 @@ dependencies = [
|
||||
"atty",
|
||||
"bitflags 1.3.2",
|
||||
"clap_lex",
|
||||
- "indexmap",
|
||||
+ "indexmap 1.9.3",
|
||||
"strsim",
|
||||
"termcolor",
|
||||
"textwrap",
|
||||
@@ -141,14 +118,14 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "concread"
|
||||
-version = "0.5.6"
|
||||
+version = "0.5.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "7b639eeaa550eba0c8be45b292d5e272e6d29bfdffb4df6925d651ed9ed10fd6"
|
||||
+checksum = "6588e9e68e11207fb9a5aabd88765187969e6bcba98763c40bcad87b2a73e9f5"
|
||||
dependencies = [
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-queue",
|
||||
"crossbeam-utils",
|
||||
- "foldhash",
|
||||
+ "foldhash 0.2.0",
|
||||
"lru",
|
||||
"smallvec",
|
||||
"sptr",
|
||||
@@ -210,9 +187,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
||||
|
||||
[[package]]
|
||||
name = "errno"
|
||||
-version = "0.3.12"
|
||||
+version = "0.3.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18"
|
||||
+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"windows-sys",
|
||||
@@ -232,17 +209,29 @@ checksum = "93804560e638370a8be6d59ce71ed803e55e230abdbf42598e666b41adda9b1f"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"byteorder",
|
||||
- "getrandom 0.2.16",
|
||||
+ "getrandom 0.2.17",
|
||||
"openssl",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
+[[package]]
|
||||
+name = "find-msvc-tools"
|
||||
+version = "0.1.9"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
||||
+
|
||||
[[package]]
|
||||
name = "foldhash"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
||||
|
||||
+[[package]]
|
||||
+name = "foldhash"
|
||||
+version = "0.2.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
|
||||
+
|
||||
[[package]]
|
||||
name = "foreign-types"
|
||||
version = "0.3.2"
|
||||
@@ -260,32 +249,39 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
-version = "0.2.16"
|
||||
+version = "0.2.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
|
||||
+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
- "wasi 0.11.1+wasi-snapshot-preview1",
|
||||
+ "wasi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
-version = "0.3.3"
|
||||
+version = "0.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
|
||||
+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"r-efi",
|
||||
- "wasi 0.14.2+wasi-0.2.4",
|
||||
+ "wasip2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "gimli"
|
||||
-version = "0.31.1"
|
||||
+name = "getrandom"
|
||||
+version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
|
||||
+checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec"
|
||||
+dependencies = [
|
||||
+ "cfg-if",
|
||||
+ "libc",
|
||||
+ "r-efi",
|
||||
+ "wasip2",
|
||||
+ "wasip3",
|
||||
+]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
@@ -295,13 +291,22 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
-version = "0.15.4"
|
||||
+version = "0.15.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
|
||||
+checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
|
||||
+dependencies = [
|
||||
+ "foldhash 0.1.5",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "hashbrown"
|
||||
+version = "0.16.1"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
"equivalent",
|
||||
- "foldhash",
|
||||
+ "foldhash 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -310,6 +315,12 @@ version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
||||
|
||||
+[[package]]
|
||||
+name = "heck"
|
||||
+version = "0.5.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||
+
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.1.19"
|
||||
@@ -319,6 +330,12 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
+[[package]]
|
||||
+name = "id-arena"
|
||||
+version = "2.3.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
|
||||
+
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "1.9.3"
|
||||
@@ -329,27 +346,45 @@ dependencies = [
|
||||
"hashbrown 0.12.3",
|
||||
]
|
||||
|
||||
+[[package]]
|
||||
+name = "indexmap"
|
||||
+version = "2.13.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
|
||||
+dependencies = [
|
||||
+ "equivalent",
|
||||
+ "hashbrown 0.16.1",
|
||||
+ "serde",
|
||||
+ "serde_core",
|
||||
+]
|
||||
+
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
-version = "1.0.15"
|
||||
+version = "1.0.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
||||
+checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
||||
|
||||
[[package]]
|
||||
name = "jobserver"
|
||||
-version = "0.1.33"
|
||||
+version = "0.1.34"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
|
||||
+checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
|
||||
dependencies = [
|
||||
- "getrandom 0.3.3",
|
||||
+ "getrandom 0.3.4",
|
||||
"libc",
|
||||
]
|
||||
|
||||
+[[package]]
|
||||
+name = "leb128fmt"
|
||||
+version = "0.1.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
||||
+
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.174"
|
||||
+version = "0.2.182"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
|
||||
+checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
|
||||
|
||||
[[package]]
|
||||
name = "librnsslapd"
|
||||
@@ -372,48 +407,30 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
-version = "0.9.4"
|
||||
+version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
|
||||
+checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
-version = "0.4.27"
|
||||
+version = "0.4.29"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
|
||||
+checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
|
||||
|
||||
[[package]]
|
||||
name = "lru"
|
||||
-version = "0.13.0"
|
||||
+version = "0.16.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465"
|
||||
+checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
|
||||
dependencies = [
|
||||
- "hashbrown 0.15.4",
|
||||
+ "hashbrown 0.16.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
-version = "2.7.5"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
|
||||
-
|
||||
-[[package]]
|
||||
-name = "miniz_oxide"
|
||||
-version = "0.8.9"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
|
||||
-dependencies = [
|
||||
- "adler2",
|
||||
-]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "object"
|
||||
-version = "0.36.7"
|
||||
+version = "2.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
|
||||
-dependencies = [
|
||||
- "memchr",
|
||||
-]
|
||||
+checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
@@ -423,11 +440,11 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
||||
|
||||
[[package]]
|
||||
name = "openssl"
|
||||
-version = "0.10.73"
|
||||
+version = "0.10.75"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8"
|
||||
+checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328"
|
||||
dependencies = [
|
||||
- "bitflags 2.9.1",
|
||||
+ "bitflags 2.11.0",
|
||||
"cfg-if",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
@@ -444,14 +461,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
- "syn 2.0.103",
|
||||
+ "syn 2.0.117",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "openssl-sys"
|
||||
-version = "0.9.109"
|
||||
+version = "0.9.111"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571"
|
||||
+checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
@@ -496,6 +513,16 @@ version = "0.3.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
||||
|
||||
+[[package]]
|
||||
+name = "prettyplease"
|
||||
+version = "0.2.37"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
||||
+dependencies = [
|
||||
+ "proc-macro2",
|
||||
+ "syn 2.0.117",
|
||||
+]
|
||||
+
|
||||
[[package]]
|
||||
name = "proc-macro-hack"
|
||||
version = "0.5.20+deprecated"
|
||||
@@ -504,9 +531,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
-version = "1.0.95"
|
||||
+version = "1.0.106"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
|
||||
+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
@@ -526,9 +553,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
-version = "1.0.40"
|
||||
+version = "1.0.44"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
|
||||
+checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
@@ -539,19 +566,13 @@ version = "5.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
||||
|
||||
-[[package]]
|
||||
-name = "rustc-demangle"
|
||||
-version = "0.1.25"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f"
|
||||
-
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
-version = "1.0.7"
|
||||
+version = "1.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
|
||||
+checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
|
||||
dependencies = [
|
||||
- "bitflags 2.9.1",
|
||||
+ "bitflags 2.11.0",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys",
|
||||
@@ -559,41 +580,52 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "ryu"
|
||||
-version = "1.0.20"
|
||||
+name = "semver"
|
||||
+version = "1.0.27"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
|
||||
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
-version = "1.0.219"
|
||||
+version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
|
||||
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
||||
+dependencies = [
|
||||
+ "serde_core",
|
||||
+ "serde_derive",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "serde_core"
|
||||
+version = "1.0.228"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
-version = "1.0.219"
|
||||
+version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
|
||||
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
- "syn 2.0.103",
|
||||
+ "syn 2.0.117",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
-version = "1.0.140"
|
||||
+version = "1.0.149"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
|
||||
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
- "ryu",
|
||||
"serde",
|
||||
+ "serde_core",
|
||||
+ "zmij",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -649,9 +681,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
-version = "2.0.103"
|
||||
+version = "2.0.117"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8"
|
||||
+checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -660,12 +692,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
-version = "3.20.0"
|
||||
+version = "3.25.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
|
||||
+checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1"
|
||||
dependencies = [
|
||||
"fastrand",
|
||||
- "getrandom 0.3.3",
|
||||
+ "getrandom 0.4.1",
|
||||
"once_cell",
|
||||
"rustix",
|
||||
"windows-sys",
|
||||
@@ -688,11 +720,10 @@ checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
|
||||
|
||||
[[package]]
|
||||
name = "tokio"
|
||||
-version = "1.45.1"
|
||||
+version = "1.49.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779"
|
||||
+checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86"
|
||||
dependencies = [
|
||||
- "backtrace",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
@@ -707,9 +738,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing"
|
||||
-version = "0.1.41"
|
||||
+version = "0.1.44"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
|
||||
+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
|
||||
dependencies = [
|
||||
"pin-project-lite",
|
||||
"tracing-attributes",
|
||||
@@ -718,29 +749,35 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing-attributes"
|
||||
-version = "0.1.30"
|
||||
+version = "0.1.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
|
||||
+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
- "syn 2.0.103",
|
||||
+ "syn 2.0.117",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-core"
|
||||
-version = "0.1.34"
|
||||
+version = "0.1.36"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
|
||||
+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
-version = "1.0.18"
|
||||
+version = "1.0.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
|
||||
+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
||||
+
|
||||
+[[package]]
|
||||
+name = "unicode-xid"
|
||||
+version = "0.2.6"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
|
||||
|
||||
[[package]]
|
||||
name = "uuid"
|
||||
@@ -748,7 +785,7 @@ version = "0.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
|
||||
dependencies = [
|
||||
- "getrandom 0.2.16",
|
||||
+ "getrandom 0.2.17",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -764,12 +801,55 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
||||
|
||||
[[package]]
|
||||
-name = "wasi"
|
||||
-version = "0.14.2+wasi-0.2.4"
|
||||
+name = "wasip2"
|
||||
+version = "1.0.2+wasi-0.2.9"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
||||
+dependencies = [
|
||||
+ "wit-bindgen",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "wasip3"
|
||||
+version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
|
||||
+dependencies = [
|
||||
+ "wit-bindgen",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "wasm-encoder"
|
||||
+version = "0.244.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
|
||||
+dependencies = [
|
||||
+ "leb128fmt",
|
||||
+ "wasmparser",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "wasm-metadata"
|
||||
+version = "0.244.0"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
|
||||
+dependencies = [
|
||||
+ "anyhow",
|
||||
+ "indexmap 2.13.0",
|
||||
+ "wasm-encoder",
|
||||
+ "wasmparser",
|
||||
+]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "wasmparser"
|
||||
+version = "0.244.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
|
||||
+checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
|
||||
dependencies = [
|
||||
- "wit-bindgen-rt",
|
||||
+ "bitflags 2.11.0",
|
||||
+ "hashbrown 0.15.5",
|
||||
+ "indexmap 2.13.0",
|
||||
+ "semver",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -790,9 +870,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-util"
|
||||
-version = "0.1.9"
|
||||
+version = "0.1.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
||||
+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
||||
dependencies = [
|
||||
"windows-sys",
|
||||
]
|
||||
@@ -804,103 +884,130 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||
|
||||
[[package]]
|
||||
-name = "windows-sys"
|
||||
-version = "0.59.0"
|
||||
+name = "windows-link"
|
||||
+version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
||||
-dependencies = [
|
||||
- "windows-targets",
|
||||
-]
|
||||
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
||||
|
||||
[[package]]
|
||||
-name = "windows-targets"
|
||||
-version = "0.52.6"
|
||||
+name = "windows-sys"
|
||||
+version = "0.61.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
||||
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
||||
dependencies = [
|
||||
- "windows_aarch64_gnullvm",
|
||||
- "windows_aarch64_msvc",
|
||||
- "windows_i686_gnu",
|
||||
- "windows_i686_gnullvm",
|
||||
- "windows_i686_msvc",
|
||||
- "windows_x86_64_gnu",
|
||||
- "windows_x86_64_gnullvm",
|
||||
- "windows_x86_64_msvc",
|
||||
+ "windows-link",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
-name = "windows_aarch64_gnullvm"
|
||||
-version = "0.52.6"
|
||||
+name = "wit-bindgen"
|
||||
+version = "0.51.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
||||
-
|
||||
-[[package]]
|
||||
-name = "windows_aarch64_msvc"
|
||||
-version = "0.52.6"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
||||
-
|
||||
-[[package]]
|
||||
-name = "windows_i686_gnu"
|
||||
-version = "0.52.6"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
|
||||
-
|
||||
-[[package]]
|
||||
-name = "windows_i686_gnullvm"
|
||||
-version = "0.52.6"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
||||
+checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
||||
+dependencies = [
|
||||
+ "wit-bindgen-rust-macro",
|
||||
+]
|
||||
|
||||
[[package]]
|
||||
-name = "windows_i686_msvc"
|
||||
-version = "0.52.6"
|
||||
+name = "wit-bindgen-core"
|
||||
+version = "0.51.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
||||
+checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
|
||||
+dependencies = [
|
||||
+ "anyhow",
|
||||
+ "heck 0.5.0",
|
||||
+ "wit-parser",
|
||||
+]
|
||||
|
||||
[[package]]
|
||||
-name = "windows_x86_64_gnu"
|
||||
-version = "0.52.6"
|
||||
+name = "wit-bindgen-rust"
|
||||
+version = "0.51.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
||||
+checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
|
||||
+dependencies = [
|
||||
+ "anyhow",
|
||||
+ "heck 0.5.0",
|
||||
+ "indexmap 2.13.0",
|
||||
+ "prettyplease",
|
||||
+ "syn 2.0.117",
|
||||
+ "wasm-metadata",
|
||||
+ "wit-bindgen-core",
|
||||
+ "wit-component",
|
||||
+]
|
||||
|
||||
[[package]]
|
||||
-name = "windows_x86_64_gnullvm"
|
||||
-version = "0.52.6"
|
||||
+name = "wit-bindgen-rust-macro"
|
||||
+version = "0.51.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
||||
+checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
|
||||
+dependencies = [
|
||||
+ "anyhow",
|
||||
+ "prettyplease",
|
||||
+ "proc-macro2",
|
||||
+ "quote",
|
||||
+ "syn 2.0.117",
|
||||
+ "wit-bindgen-core",
|
||||
+ "wit-bindgen-rust",
|
||||
+]
|
||||
|
||||
[[package]]
|
||||
-name = "windows_x86_64_msvc"
|
||||
-version = "0.52.6"
|
||||
+name = "wit-component"
|
||||
+version = "0.244.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
||||
+checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
|
||||
+dependencies = [
|
||||
+ "anyhow",
|
||||
+ "bitflags 2.11.0",
|
||||
+ "indexmap 2.13.0",
|
||||
+ "log",
|
||||
+ "serde",
|
||||
+ "serde_derive",
|
||||
+ "serde_json",
|
||||
+ "wasm-encoder",
|
||||
+ "wasm-metadata",
|
||||
+ "wasmparser",
|
||||
+ "wit-parser",
|
||||
+]
|
||||
|
||||
[[package]]
|
||||
-name = "wit-bindgen-rt"
|
||||
-version = "0.39.0"
|
||||
+name = "wit-parser"
|
||||
+version = "0.244.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
|
||||
+checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
|
||||
dependencies = [
|
||||
- "bitflags 2.9.1",
|
||||
+ "anyhow",
|
||||
+ "id-arena",
|
||||
+ "indexmap 2.13.0",
|
||||
+ "log",
|
||||
+ "semver",
|
||||
+ "serde",
|
||||
+ "serde_derive",
|
||||
+ "serde_json",
|
||||
+ "unicode-xid",
|
||||
+ "wasmparser",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zeroize"
|
||||
-version = "1.8.1"
|
||||
+version = "1.8.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
|
||||
+checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
|
||||
dependencies = [
|
||||
"zeroize_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zeroize_derive"
|
||||
-version = "1.4.2"
|
||||
+version = "1.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
|
||||
+checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
- "syn 2.0.103",
|
||||
+ "syn 2.0.117",
|
||||
]
|
||||
+
|
||||
+[[package]]
|
||||
+name = "zmij"
|
||||
+version = "1.0.21"
|
||||
+source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|
||||
diff --git a/src/librslapd/Cargo.toml b/src/librslapd/Cargo.toml
|
||||
index f38f93f4c..61100f381 100644
|
||||
--- a/src/librslapd/Cargo.toml
|
||||
+++ b/src/librslapd/Cargo.toml
|
||||
@@ -16,7 +16,7 @@ crate-type = ["staticlib", "lib"]
|
||||
[dependencies]
|
||||
slapd = { path = "../slapd" }
|
||||
libc = "0.2"
|
||||
-concread = "0.5.6"
|
||||
+concread = "0.5.10"
|
||||
|
||||
[build-dependencies]
|
||||
cbindgen = "0.26"
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -0,0 +1,86 @@
|
||||
From 8b4dbf35ace326e5b836982d428e7029313a2247 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Reynolds <mreynolds@redhat.com>
|
||||
Date: Mon, 23 Feb 2026 12:37:26 -0500
|
||||
Subject: [PATCH] Issue 7271 - plugins that create threads need to update
|
||||
active thread count
|
||||
|
||||
Description:
|
||||
|
||||
Plugins that create threads need to up to the global active thread count.
|
||||
Otherwise when the server is being stopped the plugin's close function gets
|
||||
called while these threads are still running and still using the plugin
|
||||
configuration. This can lead to crashes.
|
||||
|
||||
relates: https://github.com/389ds/389-ds-base/issues/7271
|
||||
|
||||
Reviewed by: progier & tbordaz (Thanks!!)
|
||||
---
|
||||
ldap/servers/plugins/replication/repl5_protocol.c | 5 +++++
|
||||
ldap/servers/plugins/retrocl/retrocl_trim.c | 7 ++++++-
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ldap/servers/plugins/replication/repl5_protocol.c b/ldap/servers/plugins/replication/repl5_protocol.c
|
||||
index 5d4a0e455..bc9580319 100644
|
||||
--- a/ldap/servers/plugins/replication/repl5_protocol.c
|
||||
+++ b/ldap/servers/plugins/replication/repl5_protocol.c
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "repl5.h"
|
||||
#include "repl5_prot_private.h"
|
||||
+#include "slap.h"
|
||||
|
||||
#define PROTOCOL_5_INCREMENTAL 1
|
||||
#define PROTOCOL_5_TOTAL 2
|
||||
@@ -237,6 +238,8 @@ prot_thread_main(void *arg)
|
||||
return;
|
||||
}
|
||||
|
||||
+ g_incr_active_threadcnt();
|
||||
+
|
||||
set_thread_private_agmtname(agmt_get_long_name(agmt));
|
||||
|
||||
done = 0;
|
||||
@@ -301,6 +304,8 @@ prot_thread_main(void *arg)
|
||||
done = 1;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ g_decr_active_threadcnt();
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/ldap/servers/plugins/retrocl/retrocl_trim.c b/ldap/servers/plugins/retrocl/retrocl_trim.c
|
||||
index 8fcd3d32b..8fdc75c62 100644
|
||||
--- a/ldap/servers/plugins/retrocl/retrocl_trim.c
|
||||
+++ b/ldap/servers/plugins/retrocl/retrocl_trim.c
|
||||
@@ -243,6 +243,8 @@ trim_changelog(void)
|
||||
|
||||
now_interval = slapi_current_rel_time_t(); /* monotonic time for interval */
|
||||
|
||||
+ g_incr_active_threadcnt();
|
||||
+
|
||||
PR_Lock(ts.ts_s_trim_mutex);
|
||||
max_age = ts.ts_c_max_age;
|
||||
trim_interval = ts.ts_c_trim_interval;
|
||||
@@ -257,7 +259,7 @@ trim_changelog(void)
|
||||
*/
|
||||
done = 0;
|
||||
now_maxage = slapi_current_utc_time(); /* real time for trim candidates */
|
||||
- while (!done && retrocl_trimming == 1) {
|
||||
+ while (!done && retrocl_trimming == 1 && !slapi_is_shutting_down()) {
|
||||
int did_delete;
|
||||
|
||||
did_delete = 0;
|
||||
@@ -309,6 +311,9 @@ trim_changelog(void)
|
||||
"trim_changelog: removed %d change records\n",
|
||||
num_deleted);
|
||||
}
|
||||
+
|
||||
+ g_decr_active_threadcnt();
|
||||
+
|
||||
return rc;
|
||||
}
|
||||
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
From ffe1909e69ab2aecef396f31cf95cdcecd992782 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Reynolds <mreynolds@redhat.com>
|
||||
Date: Mon, 23 Feb 2026 12:10:32 -0500
|
||||
Subject: [PATCH] Issue 7273 - In a chaining environment binding as remote user
|
||||
causes an invalid error in the logs
|
||||
|
||||
Description:
|
||||
|
||||
In a database link/chaining environment you can bind as a remote user, and
|
||||
this triggers an error when trying to "upgrade_on_bind" as the user does not
|
||||
locally have a userpassword since it's remote. There is no strong case to
|
||||
log an error in this situation.
|
||||
|
||||
relates: http://github.com/389ds/389-ds-base/issues/7273
|
||||
|
||||
Reviewed by: vashirov(Thanks!)
|
||||
---
|
||||
ldap/servers/slapd/pw.c | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/ldap/servers/slapd/pw.c b/ldap/servers/slapd/pw.c
|
||||
index c53ecf23d..88e32537d 100644
|
||||
--- a/ldap/servers/slapd/pw.c
|
||||
+++ b/ldap/servers/slapd/pw.c
|
||||
@@ -3564,10 +3564,8 @@ int32_t update_pw_encoding(Slapi_PBlock *orig_pb, Slapi_Entry *e, Slapi_DN *sdn,
|
||||
* Does the entry have a pw?
|
||||
*/
|
||||
if (e == NULL || slapi_entry_attr_find(e, SLAPI_USERPWD_ATTR, &pw) != 0 || pw == NULL) {
|
||||
- slapi_log_err(SLAPI_LOG_WARNING,
|
||||
- "update_pw_encoding", "Could not read password attribute on '%s'\n",
|
||||
- dn);
|
||||
- res = -1;
|
||||
+ /* The entry does not have a userpassword attribute so there is nothing to do.
|
||||
+ * This typically happens when chaining is involved. */
|
||||
goto free_and_return;
|
||||
}
|
||||
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
From 3a233116a564fc339aee1021913c995504951d86 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Pichugin <spichugi@redhat.com>
|
||||
Date: Tue, 24 Feb 2026 09:28:24 -0800
|
||||
Subject: [PATCH] Issue 7279 - UI - Fix typo in export certificate dialog
|
||||
(#7280)
|
||||
|
||||
Description: Fix typo "cetificate" -> "certificate" in the
|
||||
export certificate dialog message.
|
||||
|
||||
Fixes: https://github.com/389ds/389-ds-base/issues/7279
|
||||
|
||||
Reviewed by: @vashirov (Thanks!)
|
||||
---
|
||||
src/cockpit/389-console/po/ja.po | 2 +-
|
||||
src/cockpit/389-console/src/lib/security/securityModals.jsx | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/cockpit/389-console/po/ja.po b/src/cockpit/389-console/po/ja.po
|
||||
index 27d21bf7a..12c10ded4 100644
|
||||
--- a/src/cockpit/389-console/po/ja.po
|
||||
+++ b/src/cockpit/389-console/po/ja.po
|
||||
@@ -11560,7 +11560,7 @@ msgstr "証明書のエクスポート:"
|
||||
#: src/lib/security/securityModals.jsx:58
|
||||
msgid ""
|
||||
"Enter the full path and file name, if the path portion is omitted the "
|
||||
-"cetificate is written to the server's certificate directory "
|
||||
+"certificate is written to the server's certificate directory "
|
||||
msgstr ""
|
||||
"ファイル名を含むフルパスを入力してください。パス部分を省略した場合、証明書は"
|
||||
"サーバの証明書ディレクトリに書き込まれます。"
|
||||
diff --git a/src/cockpit/389-console/src/lib/security/securityModals.jsx b/src/cockpit/389-console/src/lib/security/securityModals.jsx
|
||||
index 4d6631fd2..f32d47596 100644
|
||||
--- a/src/cockpit/389-console/src/lib/security/securityModals.jsx
|
||||
+++ b/src/cockpit/389-console/src/lib/security/securityModals.jsx
|
||||
@@ -55,7 +55,7 @@ export class ExportCertModal extends React.Component {
|
||||
}
|
||||
|
||||
const title = <>{_("Export Certificate:")} <i>{nickName}</i></>;
|
||||
- const desc = <>{_("Enter the full path and file name, if the path portion is omitted the cetificate is written to the server's certificate directory ")}<i>{certDir}</i></>;
|
||||
+ const desc = <>{_("Enter the full path and file name, if the path portion is omitted the certificate is written to the server's certificate directory ")}<i>{certDir}</i></>;
|
||||
|
||||
return (
|
||||
<Modal
|
||||
--
|
||||
2.53.0
|
||||
|
||||
1178
0061-Issue-7275-UI-Improve-password-policy-field-validati.patch
Normal file
1178
0061-Issue-7275-UI-Improve-password-policy-field-validati.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,34 @@
|
||||
From f4d8df66187c0d1db6c9f5c9aa55946a8564de4b Mon Sep 17 00:00:00 2001
|
||||
From: Sam Morris <sam@robots.org.uk>
|
||||
Date: Wed, 25 Feb 2026 12:30:01 +0000
|
||||
Subject: [PATCH] Issue 7246 - correct formatting of 'Gen as CSN' in dsctl
|
||||
get-nsstate output (#7247)
|
||||
|
||||
Description: CSNs are formatted as hexadecimal, but the replica id and
|
||||
sequence number are displayed in decomal.
|
||||
|
||||
Fix: use correct format specifiers for hexadecimal output.
|
||||
|
||||
Fixes: https://github.com/389ds/389-ds-base/issues/7246
|
||||
|
||||
Signed-off-by: Sam Morris <sam@robots.org.uk>
|
||||
---
|
||||
src/lib389/lib389/dseldif.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/lib389/lib389/dseldif.py b/src/lib389/lib389/dseldif.py
|
||||
index 7834d9468..eac17aa4c 100644
|
||||
--- a/src/lib389/lib389/dseldif.py
|
||||
+++ b/src/lib389/lib389/dseldif.py
|
||||
@@ -407,7 +407,7 @@ class DSEldif(DSLint):
|
||||
'endian': endian,
|
||||
'rid': str(rid),
|
||||
'gen_time': str(sampled_time),
|
||||
- 'gencsn': "%08x%04d%04d0000" % (sampled_time, seq_num, rid),
|
||||
+ 'gencsn': "%08x%04x%04x0000" % (sampled_time, seq_num, rid),
|
||||
'gen_time_str': time.ctime(sampled_time),
|
||||
'local_offset': str(local_offset),
|
||||
'local_offset_str': print_nice_time(local_offset),
|
||||
--
|
||||
2.53.0
|
||||
|
||||
93
0063-Security-fix-for-CVE-2025-14905.patch
Normal file
93
0063-Security-fix-for-CVE-2025-14905.patch
Normal file
@ -0,0 +1,93 @@
|
||||
From 2e424110def2e3998f6045e136fb0d43f47b7f5a Mon Sep 17 00:00:00 2001
|
||||
From: tbordaz <tbordaz@redhat.com>
|
||||
Date: Wed, 25 Feb 2026 14:06:42 +0100
|
||||
Subject: [PATCH] Security fix for CVE-2025-14905
|
||||
|
||||
Description:
|
||||
A vulnerability was found in the 389 Directory Server.
|
||||
The 389 Directory Server present a risk of heap buffer overflow that
|
||||
can be exploited to excute a Denial of Service and potential Remote
|
||||
Code Execution
|
||||
|
||||
References:
|
||||
- https://access.redhat.com/security/cve/CVE-2025-14905
|
||||
- https://bugzilla.redhat.com/show_bug.cgi?id=2423624
|
||||
---
|
||||
ldap/servers/slapd/schema.c | 47 ++++++++++++++++++++++++++++++-------
|
||||
1 file changed, 38 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/ldap/servers/slapd/schema.c b/ldap/servers/slapd/schema.c
|
||||
index 9ef4ee4bf..7712a720d 100644
|
||||
--- a/ldap/servers/slapd/schema.c
|
||||
+++ b/ldap/servers/slapd/schema.c
|
||||
@@ -1410,6 +1410,7 @@ schema_attr_enum_callback(struct asyntaxinfo *asip, void *arg)
|
||||
const char *attr_desc, *syntaxoid;
|
||||
char *outp, syntaxlengthbuf[128];
|
||||
int i;
|
||||
+ int nb_aliases = 0;
|
||||
|
||||
vals[0] = &val;
|
||||
|
||||
@@ -1435,6 +1436,7 @@ schema_attr_enum_callback(struct asyntaxinfo *asip, void *arg)
|
||||
if (asip->asi_aliases != NULL) {
|
||||
for (i = 0; asip->asi_aliases[i] != NULL; ++i) {
|
||||
aliaslen += strlen(asip->asi_aliases[i]);
|
||||
+ nb_aliases++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1452,15 +1454,42 @@ schema_attr_enum_callback(struct asyntaxinfo *asip, void *arg)
|
||||
* XXX: 256 is a magic number... it must be big enough to account for
|
||||
* all of the fixed sized items we output.
|
||||
*/
|
||||
- sizedbuffer_allocate(aew->psbAttrTypes, 256 + strlen(asip->asi_oid) +
|
||||
- strlen(asip->asi_name) +
|
||||
- aliaslen + strlen_null_ok(attr_desc) +
|
||||
- strlen(syntaxoid) +
|
||||
- strlen_null_ok(asip->asi_superior) +
|
||||
- strlen_null_ok(asip->asi_mr_equality) +
|
||||
- strlen_null_ok(asip->asi_mr_ordering) +
|
||||
- strlen_null_ok(asip->asi_mr_substring) +
|
||||
- strcat_extensions(NULL, asip->asi_extensions));
|
||||
+ {
|
||||
+ int asi_oid_strlen = strlen(asip->asi_oid) + 8; /* "( %s NAME " */
|
||||
+ int asi_name_strlen = strlen(asip->asi_name) + 6; /* "( '%s' ...)" */
|
||||
+ int asi_aliases_strlen = aliaslen + nb_aliases * 3; /* "'%s' " */
|
||||
+ int asi_desc_strlen = strlen_null_ok(attr_desc) + 7; /* "DESC '%s'" */
|
||||
+ int asi_syntaxoid_strlen = strlen("SYNTAX ") + strlen(syntaxoid) + strlen(syntaxlengthbuf);
|
||||
+ int asi_superior_strlen = strlen("SUP ") + strlen_null_ok(asip->asi_superior);
|
||||
+ int asi_mr_equality_strlen = strlen("EQUALITY ") + strlen_null_ok(asip->asi_mr_equality);
|
||||
+ int asi_mr_ordering_strlen = strlen("ORDERING ") + strlen_null_ok(asip->asi_mr_ordering);
|
||||
+ int asi_mr_substring_strlen = strlen("SUBSTR ") + strlen_null_ok(asip->asi_mr_substring);
|
||||
+ int asi_flags_strlen = strlen("SINGLE-VALUE ") +
|
||||
+ strlen(schema_obsolete_with_spaces) +
|
||||
+ strlen(schema_collective_with_spaces) +
|
||||
+ strlen(schema_nousermod_with_spaces) +
|
||||
+ strlen("USAGE distributedOperation ") +
|
||||
+ strlen("USAGE dSAOperation ") +
|
||||
+ strlen("USAGE directoryOperation ");
|
||||
+ int asi_extension_strlen = strcat_extensions(NULL, asip->asi_extensions);
|
||||
+
|
||||
+ if (aew->enquote_sup_oc) {
|
||||
+ /* it enquote the syntax oid */
|
||||
+ asi_syntaxoid_strlen += 2;
|
||||
+ }
|
||||
+
|
||||
+ sizedbuffer_allocate(aew->psbAttrTypes, 256 + asi_oid_strlen +
|
||||
+ asi_name_strlen +
|
||||
+ asi_aliases_strlen +
|
||||
+ asi_desc_strlen +
|
||||
+ asi_syntaxoid_strlen +
|
||||
+ asi_superior_strlen +
|
||||
+ asi_mr_equality_strlen +
|
||||
+ asi_mr_ordering_strlen +
|
||||
+ asi_mr_substring_strlen +
|
||||
+ asi_extension_strlen +
|
||||
+ asi_flags_strlen);
|
||||
+ }
|
||||
|
||||
/*
|
||||
* Overall strategy is to maintain a pointer to the next location in
|
||||
--
|
||||
2.53.0
|
||||
|
||||
654
0064-Issue-7267-MDB_BAD_VALSIZE-error-when-updating-index.patch
Normal file
654
0064-Issue-7267-MDB_BAD_VALSIZE-error-when-updating-index.patch
Normal file
@ -0,0 +1,654 @@
|
||||
From c7e1eb08eb36fd9a16c745935f56fa4a4b2a99df Mon Sep 17 00:00:00 2001
|
||||
From: progier389 <progier@redhat.com>
|
||||
Date: Wed, 25 Feb 2026 18:00:24 +0100
|
||||
Subject: [PATCH] Issue 7267 - MDB_BAD_VALSIZE error when updating index
|
||||
(#7268)
|
||||
|
||||
* Issue 7267 - MDB_BAD_VALSIZE error when updating index
|
||||
* Improve import log when writer fails
|
||||
* Fix Sourcery AI comments
|
||||
* Fix INDEX_KEY_LENGTH typo
|
||||
|
||||
Problem with the key prefix handling when key is too long and must be hashed.
|
||||
The issue is that the # that is prepended is not reset when iterating over the valueset values (Ending up with very long prefix)
|
||||
|
||||
Also refactored the code to avoid duplicate the code that prepare the key from the attribute value (used when updating the index or retrieving a value from an index)
|
||||
|
||||
Issue: #7267
|
||||
|
||||
Reviewed by: @tbordaz , @vashirov (Thanks!)
|
||||
|
||||
Co-authored-by: Viktor Ashirov <vashirov@redhat.com>
|
||||
|
||||
---------
|
||||
|
||||
Co-authored-by: Viktor Ashirov <vashirov@redhat.com>
|
||||
---
|
||||
.../tests/suites/indexes/regression_test.py | 58 +++++++
|
||||
ldap/servers/slapd/back-ldbm/attrcrypt.h | 2 +-
|
||||
ldap/servers/slapd/back-ldbm/back-ldbm.h | 2 +
|
||||
.../slapd/back-ldbm/db-bdb/bdb_import.c | 39 +----
|
||||
.../back-ldbm/db-mdb/mdb_import_threads.c | 46 ++++-
|
||||
ldap/servers/slapd/back-ldbm/index.c | 161 +++++++-----------
|
||||
ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c | 13 +-
|
||||
.../servers/slapd/back-ldbm/proto-back-ldbm.h | 2 +-
|
||||
ldap/servers/slapd/log.c | 43 +++++
|
||||
ldap/servers/slapd/slapi-private.h | 2 +
|
||||
10 files changed, 224 insertions(+), 144 deletions(-)
|
||||
|
||||
diff --git a/dirsrvtests/tests/suites/indexes/regression_test.py b/dirsrvtests/tests/suites/indexes/regression_test.py
|
||||
index 8176d6db0..a4218a2b5 100644
|
||||
--- a/dirsrvtests/tests/suites/indexes/regression_test.py
|
||||
+++ b/dirsrvtests/tests/suites/indexes/regression_test.py
|
||||
@@ -1022,6 +1022,64 @@ def test_idl_range_limit(topo, add_some_entries):
|
||||
assert len(entries) == 3
|
||||
|
||||
|
||||
+def test_large_multivalued_sn_attribute(topo):
|
||||
+ """Test adding a user entry with 512 values for sn attribute, each 512 bytes
|
||||
+
|
||||
+ :id: 8f2a9b3c-e8d7-11ef-9a5f-482ae39447e5
|
||||
+ :setup: Standalone Instance
|
||||
+ :steps:
|
||||
+ 1. Create a user with 512 sn values, each 512 bytes long
|
||||
+ 2. Verify the user was created successfully
|
||||
+ 3. Search for the user and verify all sn values are present
|
||||
+ 4. Clean up the user entry
|
||||
+ :expectedresults:
|
||||
+ 1. User is created successfully
|
||||
+ 2. User entry exists
|
||||
+ 3. All 512 sn values are present and have correct length
|
||||
+ 4. User is deleted successfully
|
||||
+ """
|
||||
+
|
||||
+ inst = topo.standalone
|
||||
+ users = UserAccounts(inst, DEFAULT_SUFFIX)
|
||||
+
|
||||
+ log.info("Creating user with 512 sn values, each 512 bytes")
|
||||
+
|
||||
+ # Generate 512 unique sn values, each 512 bytes long
|
||||
+ # Use a pattern that makes each value unique but predictable
|
||||
+ sn_values = []
|
||||
+ for i in range(512):
|
||||
+ # Create a 512-byte value with unique identifier at the start
|
||||
+ value = f'sn_value_{i:04d}_' + 'x' * (512 - len(f'sn_value_{i:04d}_'))
|
||||
+ sn_values.append(value)
|
||||
+
|
||||
+ # Create the user with first sn value
|
||||
+ user_name = 'test_user_large_sn'
|
||||
+ user = users.create(properties={
|
||||
+ 'uid': user_name,
|
||||
+ 'cn': user_name,
|
||||
+ 'sn': sn_values,
|
||||
+ 'uidNumber': '99999',
|
||||
+ 'gidNumber': '99999',
|
||||
+ 'homeDirectory': f'/home/{user_name}'
|
||||
+ })
|
||||
+
|
||||
+ # Verify the entry was created and has all sn values
|
||||
+ log.info("Verifying all sn values are present")
|
||||
+ sn_attr_values = user.get_attr_vals_utf8('sn')
|
||||
+
|
||||
+ assert len(sn_attr_values) == 512, f"Expected 512 sn values, got {len(sn_attr_values)}"
|
||||
+
|
||||
+ # Verify each value has the correct length
|
||||
+ for idx, value in enumerate(sn_attr_values):
|
||||
+ assert len(value) == 512, f"sn value {idx} has length {len(value)}, expected 512"
|
||||
+
|
||||
+ log.info("Successfully created and verified user with 512 sn values of 512 bytes each")
|
||||
+
|
||||
+ # Clean up
|
||||
+ user.delete()
|
||||
+ log.info("User entry deleted successfully")
|
||||
+
|
||||
+
|
||||
if __name__ == "__main__":
|
||||
# Run isolated
|
||||
# -s for DEBUG mode
|
||||
diff --git a/ldap/servers/slapd/back-ldbm/attrcrypt.h b/ldap/servers/slapd/back-ldbm/attrcrypt.h
|
||||
index d653ba951..dcbea80fe 100644
|
||||
--- a/ldap/servers/slapd/back-ldbm/attrcrypt.h
|
||||
+++ b/ldap/servers/slapd/back-ldbm/attrcrypt.h
|
||||
@@ -10,7 +10,7 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
-/* Private tructures and #defines used in the attribute encryption code. */
|
||||
+/* Private structures and #defines used in the attribute encryption code. */
|
||||
|
||||
#ifndef _ATTRCRYPT_H_
|
||||
#define _ATTRCRYPT_H_
|
||||
diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
||||
index e23e7ff43..92aa1ddbb 100644
|
||||
--- a/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
||||
+++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
||||
@@ -104,6 +104,8 @@ typedef unsigned short u_int16_t;
|
||||
*/
|
||||
#define BE_CHANGELOG_FILE "replication_changelog"
|
||||
|
||||
+#define INDEX_KEY_LENGTH(lenval,lenprefix) (lenval+lenprefix+2)
|
||||
+
|
||||
#define BDB_IMPL "bdb"
|
||||
#define BDB_BACKEND "libback-ldbm" /* This backend plugin */
|
||||
#define BDB_NEWIDL "newidl" /* new idl format */
|
||||
diff --git a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_import.c b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_import.c
|
||||
index a6cb10aec..489433801 100644
|
||||
--- a/ldap/servers/slapd/back-ldbm/db-bdb/bdb_import.c
|
||||
+++ b/ldap/servers/slapd/back-ldbm/db-bdb/bdb_import.c
|
||||
@@ -75,9 +75,9 @@ static IDList *bdb_idl_union_allids(backend *be, struct attrinfo *ai, IDList *a,
|
||||
#define DEBUG_SUBCOUNT_MSG(msg, ...) { debug_subcount(__FUNCTION__, __LINE__, (msg), __VA_ARGS__); }
|
||||
#define DUMP_SUBCOUNT_KEY(msg, key, ret) { debug_subcount(__FUNCTION__, __LINE__, "ret=%d size=%u ulen=%u doff=%u dlen=%u", \
|
||||
ret, (key).size, (key).ulen, (key).doff, (key).dlen); \
|
||||
- if (ret == 0) hexadump(msg, (key).data, 0, (key).size); \
|
||||
+ if (ret == 0) slapi_log_hexadump(SLAPI_LOG_INFO, msg, (key).data, (key).size); \
|
||||
else if (ret == DB_BUFFER_SMALL) \
|
||||
- hexadump(msg, (key).data, 0, (key).ulen); }
|
||||
+ slapi_log_hexadump(SLAPI_LOG_INFO, msg, (key).data, (key).ulen); }
|
||||
|
||||
static void
|
||||
debug_subcount(const char *funcname, int line, char *msg, ...)
|
||||
@@ -90,41 +90,6 @@ debug_subcount(const char *funcname, int line, char *msg, ...)
|
||||
slapi_log_err(SLAPI_LOG_INFO, (char*)funcname, "DEBUG SUBCOUNT [%d] %s\n", line, buff);
|
||||
}
|
||||
|
||||
-/*
|
||||
- * Dump a memory buffer in hexa and ascii in error log
|
||||
- *
|
||||
- * addr - The memory buffer address.
|
||||
- * len - The memory buffer lenght.
|
||||
- */
|
||||
-static void
|
||||
-hexadump(char *msg, const void *addr, size_t offset, size_t len)
|
||||
-{
|
||||
-#define HEXADUMP_TAB 4
|
||||
-/* 4 characters per bytes: 2 hexa digits, 1 space and the ascii */
|
||||
-#define HEXADUMP_BUF_SIZE (4*16+HEXADUMP_TAB)
|
||||
- char hexdigit[] = "0123456789ABCDEF";
|
||||
-
|
||||
- const unsigned char *pt = addr;
|
||||
- char buff[HEXADUMP_BUF_SIZE+1];
|
||||
- memset (buff, ' ', HEXADUMP_BUF_SIZE);
|
||||
- buff[HEXADUMP_BUF_SIZE] = '\0';
|
||||
- while (len > 0) {
|
||||
- int dpl;
|
||||
- for (dpl = 0; dpl < 16 && len>0; dpl++, len--) {
|
||||
- buff[3*dpl] = hexdigit[((*pt) >> 4) & 0xf];
|
||||
- buff[3*dpl+1] = hexdigit[(*pt) & 0xf];
|
||||
- buff[3*16+HEXADUMP_TAB+dpl] = (*pt>=0x20 && *pt<0x7f) ? *pt : '.';
|
||||
- pt++;
|
||||
- }
|
||||
- for (;dpl < 16; dpl++) {
|
||||
- buff[3*dpl] = ' ';
|
||||
- buff[3*dpl+1] = ' ';
|
||||
- buff[3*16+HEXADUMP_TAB+dpl] = ' ';
|
||||
- }
|
||||
- slapi_log_err(SLAPI_LOG_INFO, msg, "[0x%08lx] %s\n", offset, buff);
|
||||
- offset += 16;
|
||||
- }
|
||||
-}
|
||||
#else
|
||||
#define DEBUG_SUBCOUNT_MSG(msg, ...)
|
||||
#define DUMP_SUBCOUNT_KEY(msg, key, ret)
|
||||
diff --git a/ldap/servers/slapd/back-ldbm/db-mdb/mdb_import_threads.c b/ldap/servers/slapd/back-ldbm/db-mdb/mdb_import_threads.c
|
||||
index 65b29343e..b969790da 100644
|
||||
--- a/ldap/servers/slapd/back-ldbm/db-mdb/mdb_import_threads.c
|
||||
+++ b/ldap/servers/slapd/back-ldbm/db-mdb/mdb_import_threads.c
|
||||
@@ -1123,6 +1123,21 @@ dbmdb_import_entry_info_by_backentry(mdb_privdb_t *db, BulkQueueData_t *bqdata,
|
||||
return dnrc;
|
||||
}
|
||||
|
||||
+/* Log wqelmt details */
|
||||
+void
|
||||
+log_wqelmt(int loglvl, char *fname, WorkerQueueData_t *wqelmt)
|
||||
+{
|
||||
+ if (wqelmt->dn) {
|
||||
+ slapi_log_err(loglvl, fname, "log_wqelmt: dn=%s\n", wqelmt->dn);
|
||||
+ }
|
||||
+ if (wqelmt->filename && wqelmt->lineno) {
|
||||
+ slapi_log_err(loglvl, fname, "log_wqelmt: ldif=%s[%d]\n", wqelmt->filename, wqelmt->lineno);
|
||||
+ }
|
||||
+ if (wqelmt->data) {
|
||||
+ size_t len = wqelmt->datalen ? wqelmt->datalen : strlen(wqelmt->data);
|
||||
+ slapi_log_hexadump(loglvl, "log_wqelmt:data", wqelmt->data, len);
|
||||
+ }
|
||||
+}
|
||||
|
||||
/* producer thread for ldif import case:
|
||||
* read through the given file list, parsing entries (str2entry), assigning
|
||||
@@ -1255,6 +1270,7 @@ dbmdb_import_producer(void *param)
|
||||
import_log_notice(job, SLAPI_LOG_ERR, "dbmdb_import_producer",
|
||||
"ns_slapd software error: unexpected dbmdb_import_entry_info return code: %d.",
|
||||
wqelmt.dnrc);
|
||||
+ log_wqelmt(SLAPI_LOG_ERR, "dbmdb_import_producer", &wqelmt);
|
||||
abort();
|
||||
case DNRC_OK:
|
||||
case DNRC_SUFFIX:
|
||||
@@ -1758,6 +1774,7 @@ dbmdb_index_producer(void *param)
|
||||
import_log_notice(job, SLAPI_LOG_ERR, "dbmdb_index_producer",
|
||||
"ns_slapd software error: unexpected dbmdb_import_entry_info return code: %d.",
|
||||
tmpslot.dnrc);
|
||||
+ log_wqelmt(SLAPI_LOG_ERR, "dbmdb_index_producer", &tmpslot);
|
||||
abort();
|
||||
case DNRC_OK:
|
||||
case DNRC_SUFFIX:
|
||||
@@ -3936,10 +3953,24 @@ dbmdb_import_writer(void*param)
|
||||
if (!txn) {
|
||||
MDB_STAT_STEP(stats, MDB_STAT_TXNSTART, stats_enabled);
|
||||
rc = TXN_BEGIN(ctx->ctx->env, NULL, 0, &txn);
|
||||
+ if (rc) {
|
||||
+ slapi_log_err(SLAPI_LOG_ERR, "dbmdb_import_writer",
|
||||
+ "Failed to begin a txn. Error is 0x%x: %s.\n",
|
||||
+ rc, mdb_strerror(rc));
|
||||
+ }
|
||||
}
|
||||
if (!rc) {
|
||||
MDB_STAT_STEP(stats, MDB_STAT_WRITE, stats_enabled);
|
||||
rc = MDB_PUT(txn, slot->dbi->dbi, &slot->key, &slot->data, 0);
|
||||
+ if (rc) {
|
||||
+ slapi_log_err(SLAPI_LOG_ERR, "dbmdb_import_writer",
|
||||
+ "Failed to write record in dbi %s. Error is 0x%x: %s.\n",
|
||||
+ slot->dbi->dbname, rc, mdb_strerror(rc));
|
||||
+ slapi_log_hexadump(SLAPI_LOG_ERR, "dbmdb_import_writer:key",
|
||||
+ slot->key.mv_data, slot->key.mv_size);
|
||||
+ slapi_log_hexadump(SLAPI_LOG_ERR, "dbmdb_import_writer:data",
|
||||
+ slot->data.mv_data, slot->data.mv_size);
|
||||
+ }
|
||||
}
|
||||
MDB_STAT_STEP(stats, MDB_STAT_RUN, stats_enabled);
|
||||
nextslot = slot->next;
|
||||
@@ -3953,6 +3984,9 @@ dbmdb_import_writer(void*param)
|
||||
rc = TXN_COMMIT(txn);
|
||||
MDB_STAT_STEP(stats, MDB_STAT_RUN, stats_enabled);
|
||||
if (rc) {
|
||||
+ slapi_log_err(SLAPI_LOG_ERR, "dbmdb_import_writer",
|
||||
+ "Failed to commit the txn. Error is 0x%x: %s.\n",
|
||||
+ rc, mdb_strerror(rc));
|
||||
break;
|
||||
}
|
||||
count = 0;
|
||||
@@ -3965,6 +3999,10 @@ dbmdb_import_writer(void*param)
|
||||
MDB_STAT_STEP(stats, MDB_STAT_RUN, stats_enabled);
|
||||
if (!rc) {
|
||||
txn = NULL;
|
||||
+ } else {
|
||||
+ slapi_log_err(SLAPI_LOG_ERR, "dbmdb_import_writer",
|
||||
+ "Failed to commit the txn. Error is 0x%x: %s.\n",
|
||||
+ rc, mdb_strerror(rc));
|
||||
}
|
||||
}
|
||||
if (txn) {
|
||||
@@ -3977,13 +4015,17 @@ dbmdb_import_writer(void*param)
|
||||
if (!rc) {
|
||||
/* Ensure that all data are written on disk */
|
||||
rc = mdb_env_sync(ctx->ctx->env, 1);
|
||||
+ if (rc) {
|
||||
+ slapi_log_err(SLAPI_LOG_ERR, "dbmdb_import_writer",
|
||||
+ "mdb_env_sync failed. Error is 0x%x: %s.\n",
|
||||
+ rc, mdb_strerror(rc));
|
||||
+ }
|
||||
}
|
||||
MDB_STAT_END(stats, stats_enabled);
|
||||
|
||||
if (rc) {
|
||||
slapi_log_err(SLAPI_LOG_ERR, "dbmdb_import_writer",
|
||||
- "Failed to write in the database. Error is 0x%x: %s.\n",
|
||||
- rc, mdb_strerror(rc));
|
||||
+ "Aborting import after failure.\n");
|
||||
thread_abort(info);
|
||||
} else if (stats_enabled) {
|
||||
char buf[200];
|
||||
diff --git a/ldap/servers/slapd/back-ldbm/index.c b/ldap/servers/slapd/back-ldbm/index.c
|
||||
index a5004be19..c108bce3c 100644
|
||||
--- a/ldap/servers/slapd/back-ldbm/index.c
|
||||
+++ b/ldap/servers/slapd/back-ldbm/index.c
|
||||
@@ -881,6 +881,67 @@ index_read(
|
||||
return index_read_ext(be, (char *)type, indextype, val, txn, err, NULL);
|
||||
}
|
||||
|
||||
+/* Prepare an index key (hashed if too long, encrypted if needed from attribute value */
|
||||
+int
|
||||
+prepare_key(backend *be, struct attrinfo *a, char **buf, size_t *buflen,
|
||||
+ int flags, const char *prefix, const struct berval *bvp, dbi_val_t *key)
|
||||
+{
|
||||
+ /* Key format is [Hash?] [prefix] [val] [\0] */
|
||||
+ struct ldbminfo *li = (struct ldbminfo *)be->be_database->plg_private;
|
||||
+ size_t plen = strlen(prefix);
|
||||
+ struct berval *hashed_bvp = NULL;
|
||||
+ struct berval *encrypted_bvp = NULL;
|
||||
+ int rc = 0;
|
||||
+
|
||||
+ /* Hash large index key if necessary */
|
||||
+ if (INDEX_KEY_LENGTH(bvp->bv_len,plen) >= li->li_max_key_len) {
|
||||
+ rc = attrcrypt_hash_large_index_key(be, prefix, a, bvp, &hashed_bvp);
|
||||
+ if (rc) {
|
||||
+ slapi_log_err(SLAPI_LOG_ERR, "index_read_ext_allids",
|
||||
+ "Failed to hash large index key for %s\n", a->ai_type);
|
||||
+ return rc;
|
||||
+ } else {
|
||||
+ bvp = hashed_bvp;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Encrypt the index key if necessary */
|
||||
+ if (rc == 0 && a->ai_attrcrypt && (0 == (flags & BE_INDEX_DONT_ENCRYPT))) {
|
||||
+ rc = attrcrypt_encrypt_index_key(be, a, bvp, &encrypted_bvp);
|
||||
+ if (rc) {
|
||||
+ slapi_log_err(SLAPI_LOG_ERR, "addordel_values_sv",
|
||||
+ "Failed to encrypt index key for %s\n", a->ai_type);
|
||||
+ } else {
|
||||
+ bvp = encrypted_bvp;
|
||||
+ }
|
||||
+ }
|
||||
+ if (hashed_bvp) {
|
||||
+ prefix = slapi_ch_smprintf("%c%s",HASH_PREFIX, prefix);
|
||||
+ plen++;
|
||||
+ }
|
||||
+ if (buf && buflen) {
|
||||
+ if (plen+bvp->bv_len+1 > *buflen) {
|
||||
+ *buflen = plen+bvp->bv_len+1;
|
||||
+ *buf = slapi_ch_realloc(*buf, *buflen);
|
||||
+ }
|
||||
+ dblayer_value_concat(be, key, *buf, *buflen, prefix, plen, bvp->bv_val, bvp->bv_len, "", 1);
|
||||
+ } else {
|
||||
+ dblayer_value_concat(be, key, NULL, 0, prefix, plen, bvp->bv_val, bvp->bv_len, "", 1);
|
||||
+ }
|
||||
+
|
||||
+ if (hashed_bvp) {
|
||||
+ ber_bvfree(hashed_bvp);
|
||||
+ hashed_bvp = NULL;
|
||||
+ slapi_ch_free_string((char**)&prefix);
|
||||
+ }
|
||||
+ if (encrypted_bvp) {
|
||||
+ ber_bvfree(encrypted_bvp);
|
||||
+ encrypted_bvp = NULL;
|
||||
+ }
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+
|
||||
/*
|
||||
* Extended version of index_read.
|
||||
* The unindexed flag can be used to distinguish between a
|
||||
@@ -917,7 +978,6 @@ index_read_ext_allids(
|
||||
struct berval *hashed_val = NULL;
|
||||
int is_and = 0;
|
||||
unsigned int ai_flags = 0;
|
||||
- struct ldbminfo *li = (struct ldbminfo *)be->be_database->plg_private;
|
||||
|
||||
*err = 0;
|
||||
|
||||
@@ -1028,36 +1088,7 @@ index_read_ext_allids(
|
||||
}
|
||||
|
||||
if (val != NULL) {
|
||||
- size_t vlen;
|
||||
- int ret = 0;
|
||||
-
|
||||
- /* If necessary, hash this index key */
|
||||
- if (val->bv_len >= li->li_max_key_len) {
|
||||
- ret = attrcrypt_hash_large_index_key(be, &prefix, ai, val, &hashed_val);
|
||||
- if (ret) {
|
||||
- slapi_log_err(SLAPI_LOG_ERR, "index_read_ext_allids",
|
||||
- "Failed to hash large index key for %s\n", basetype);
|
||||
- *err = DBI_RC_OTHER;
|
||||
- index_free_prefix(prefix);
|
||||
- slapi_ch_free_string(&basetmp);
|
||||
- return (NULL);
|
||||
- }
|
||||
- if (hashed_val) {
|
||||
- val = hashed_val;
|
||||
- }
|
||||
- }
|
||||
- /* If necessary, encrypt this index key */
|
||||
- ret = attrcrypt_encrypt_index_key(be, ai, val, &encrypted_val);
|
||||
- if (ret) {
|
||||
- slapi_log_err(SLAPI_LOG_ERR, "index_read_ext_allids",
|
||||
- "Failed to encrypt index key for %s\n", basetype);
|
||||
- }
|
||||
- if (encrypted_val) {
|
||||
- val = encrypted_val;
|
||||
- }
|
||||
- vlen = val->bv_len;
|
||||
- dblayer_value_concat(be, &key, buf, sizeof(buf),
|
||||
- prefix, strlen(prefix), val->bv_val, vlen, "", 1);
|
||||
+ (void) prepare_key(be, ai, NULL, 0, 0, prefix, val, &key);
|
||||
} else {
|
||||
dblayer_value_concat(be, &key, buf, sizeof(buf), prefix, strlen(prefix),
|
||||
"", 1, NULL, 0);
|
||||
@@ -1824,6 +1855,7 @@ index_range_read(
|
||||
return index_range_read_ext(pb, be, type, indextype, operator, val, nextval, range, txn, err, 0);
|
||||
}
|
||||
|
||||
+
|
||||
static int
|
||||
addordel_values_sv(
|
||||
backend *be,
|
||||
@@ -1842,15 +1874,10 @@ addordel_values_sv(
|
||||
int i = 0;
|
||||
dbi_val_t key = {0};
|
||||
dbi_txn_t *db_txn = NULL;
|
||||
- size_t plen, vlen, len;
|
||||
char *tmpbuf = NULL;
|
||||
size_t tmpbuflen = 0;
|
||||
- char *realbuf;
|
||||
char *prefix = NULL;
|
||||
const struct berval *bvp;
|
||||
- struct berval *hashed_bvp = NULL;
|
||||
- struct berval *encrypted_bvp = NULL;
|
||||
- struct ldbminfo *li = (struct ldbminfo *)be->be_database->plg_private;
|
||||
char *index_id = get_index_name(be, db, a);
|
||||
|
||||
slapi_log_err(SLAPI_LOG_TRACE, "addordel_values_sv", "%s_values\n",
|
||||
@@ -1889,66 +1916,14 @@ addordel_values_sv(
|
||||
return (rc);
|
||||
}
|
||||
|
||||
- plen = strlen(prefix);
|
||||
for (i = 0; vals[i] != NULL; i++) {
|
||||
bvp = slapi_value_get_berval(vals[i]);
|
||||
|
||||
- /* Hash large index key if necessary */
|
||||
- if (bvp->bv_len >= li->li_max_key_len) {
|
||||
- rc = attrcrypt_hash_large_index_key(be, &prefix, a, bvp, &hashed_bvp);
|
||||
- if (rc) {
|
||||
- slapi_log_err(SLAPI_LOG_ERR, "index_read_ext_allids",
|
||||
- "Failed to hash large index key for %s\n", a->ai_type);
|
||||
- break;
|
||||
- } else {
|
||||
- bvp = hashed_bvp;
|
||||
- plen = strlen(prefix);
|
||||
- }
|
||||
- }
|
||||
- /* Encrypt the index key if necessary */
|
||||
- {
|
||||
- if (a->ai_attrcrypt && (0 == (flags & BE_INDEX_DONT_ENCRYPT))) {
|
||||
- rc = attrcrypt_encrypt_index_key(be, a, bvp, &encrypted_bvp);
|
||||
- if (rc) {
|
||||
- slapi_log_err(SLAPI_LOG_ERR, "addordel_values_sv",
|
||||
- "Failed to encrypt index key for %s\n", a->ai_type);
|
||||
- } else {
|
||||
- bvp = encrypted_bvp;
|
||||
- }
|
||||
- }
|
||||
+ rc = prepare_key(be, a, &tmpbuf, &tmpbuflen, flags, prefix, bvp, &key);
|
||||
+ if (rc) {
|
||||
+ break;
|
||||
}
|
||||
|
||||
- vlen = bvp->bv_len;
|
||||
- len = plen + vlen;
|
||||
-
|
||||
- if (len < tmpbuflen) {
|
||||
- realbuf = tmpbuf;
|
||||
- } else {
|
||||
- tmpbuf = slapi_ch_realloc(tmpbuf, len + 1);
|
||||
- tmpbuflen = len + 1;
|
||||
- realbuf = tmpbuf;
|
||||
- }
|
||||
-
|
||||
- assert(realbuf); /* For coverity */
|
||||
- memcpy(realbuf, prefix, plen);
|
||||
- memcpy(realbuf + plen, bvp->bv_val, vlen);
|
||||
- realbuf[len] = '\0';
|
||||
- /* Free the encrypted berval if necessary */
|
||||
- if (hashed_bvp) {
|
||||
- ber_bvfree(hashed_bvp);
|
||||
- hashed_bvp = NULL;
|
||||
- }
|
||||
- if (encrypted_bvp) {
|
||||
- ber_bvfree(encrypted_bvp);
|
||||
- encrypted_bvp = NULL;
|
||||
- }
|
||||
- /* should be okay to use USERMEM here because we know what
|
||||
- * the key is and it should never return a different value
|
||||
- * than the one we pass in.
|
||||
- */
|
||||
- dblayer_value_set_buffer(be, &key, realbuf, plen + vlen + 1);
|
||||
- key.ulen = tmpbuflen;
|
||||
-
|
||||
if (slapi_is_loglevel_set(LDAP_DEBUG_TRACE)) {
|
||||
char encbuf[BUFSIZ];
|
||||
|
||||
@@ -1981,10 +1956,6 @@ addordel_values_sv(
|
||||
ldbm_nasty(NASTY_MSG("addordel_values_sv"), index_id, 1130, rc);
|
||||
break;
|
||||
}
|
||||
- if (NULL != key.dptr && realbuf != key.dptr) { /* realloc'ed */
|
||||
- tmpbuf = key.dptr;
|
||||
- tmpbuflen = key.size;
|
||||
- }
|
||||
}
|
||||
index_free_prefix(prefix);
|
||||
if (tmpbuf != NULL) {
|
||||
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
|
||||
index 124810426..6655633fc 100644
|
||||
--- a/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
|
||||
+++ b/ldap/servers/slapd/back-ldbm/ldbm_attrcrypt.c
|
||||
@@ -1079,15 +1079,15 @@ attrcrypt_decrypt_index_key(backend *be,
|
||||
* : NULL - no hash or failure
|
||||
*/
|
||||
int
|
||||
-attrcrypt_hash_large_index_key(backend *be, char **prefix, struct attrinfo *ai, const struct berval *in, struct berval **out)
|
||||
+attrcrypt_hash_large_index_key(backend *be, const char *prefix, struct attrinfo *ai, const struct berval *in, struct berval **out)
|
||||
{
|
||||
int ret = 0;
|
||||
struct berval *out_berval = NULL;
|
||||
struct ldbminfo *li = (struct ldbminfo *)be->be_database->plg_private;
|
||||
- char *new_prefix;
|
||||
+ size_t final_key_len = INDEX_KEY_LENGTH(in->bv_len, strlen(prefix));
|
||||
|
||||
/* If the index key is too long (i.e mdb case) we must hash it */
|
||||
- if (in->bv_len >= li->li_max_key_len) {
|
||||
+ if (final_key_len >= li->li_max_key_len) {
|
||||
PK11Context *c = PK11_CreateDigestContext(SEC_OID_MD5);
|
||||
if (c != NULL) {
|
||||
unsigned char hash[32];
|
||||
@@ -1101,16 +1101,13 @@ attrcrypt_hash_large_index_key(backend *be, char **prefix, struct attrinfo *ai,
|
||||
return ENOMEM;
|
||||
}
|
||||
slapi_log_err(SLAPI_LOG_TRACE, "attrcrypt_hash_large_index_key",
|
||||
- "Key lenght (%lu) >= max key lenght (%lu) so key must be hashed\n", in->bv_len, li->li_max_key_len);
|
||||
+ "Key lenght (%lu) >= max key lenght (%lu) so key must be hashed\n", final_key_len, li->li_max_key_len);
|
||||
slapi_be_set_flag(be, SLAPI_BE_FLAG_DONT_BYPASS_FILTERTEST);
|
||||
PK11_DigestBegin(c);
|
||||
/* Compute hash for the key without the prefix */
|
||||
PK11_DigestOp(c, (unsigned char *)in->bv_val, in->bv_len);
|
||||
PK11_DigestFinal(c, hash, &hashLen, sizeof hash);
|
||||
- /* Add HASH_PREFIX before the prefix */
|
||||
- new_prefix = slapi_ch_smprintf("%c%s", HASH_PREFIX, *prefix);
|
||||
- index_free_prefix(*prefix);
|
||||
- *prefix = new_prefix;
|
||||
+
|
||||
/* Build the key: hash value in hexa */
|
||||
hkey = slapi_ch_malloc(1+2*sizeof hash);
|
||||
out_berval->bv_val = hkey;
|
||||
diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
|
||||
index 30a7aa11f..c882dac7b 100644
|
||||
--- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
|
||||
+++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h
|
||||
@@ -622,7 +622,7 @@ int attrcrypt_encrypt_entry_inplace(backend *be, const struct backentry *inout);
|
||||
int attrcrypt_encrypt_entry(backend *be, const struct backentry *in, struct backentry **out);
|
||||
int attrcrypt_encrypt_index_key(backend *be, struct attrinfo *ai, const struct berval *in, struct berval **out);
|
||||
int attrcrypt_decrypt_index_key(backend *be, struct attrinfo *ai, const struct berval *in, struct berval **out);
|
||||
-int attrcrypt_hash_large_index_key(backend *be, char **prefix, struct attrinfo *ai, const struct berval *in, struct berval **out);
|
||||
+int attrcrypt_hash_large_index_key(backend *be, const char *prefix, struct attrinfo *ai, const struct berval *in, struct berval **out);
|
||||
int attrcrypt_init(ldbm_instance *li);
|
||||
int attrcrypt_cleanup_private(ldbm_instance *li);
|
||||
|
||||
diff --git a/ldap/servers/slapd/log.c b/ldap/servers/slapd/log.c
|
||||
index 80c07382a..93101494b 100644
|
||||
--- a/ldap/servers/slapd/log.c
|
||||
+++ b/ldap/servers/slapd/log.c
|
||||
@@ -93,6 +93,10 @@ static int slapi_log_map[] = {
|
||||
#define FLUSH PR_TRUE
|
||||
#define NO_FLUSH PR_FALSE
|
||||
|
||||
+#define HEXADUMP_TAB 4
|
||||
+/* 4 characters per bytes: 2 hexa digits, 1 space and the ascii */
|
||||
+#define HEXADUMP_BUF_SIZE (4*16+HEXADUMP_TAB)
|
||||
+
|
||||
/**************************************************************************
|
||||
* PROTOTYPES
|
||||
*************************************************************************/
|
||||
@@ -3133,6 +3137,45 @@ slapi_log_backtrace(int loglevel)
|
||||
}
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Dump a memory buffer in hexa and ascii in error log
|
||||
+ *
|
||||
+ * addr - The memory buffer address.
|
||||
+ * len - The memory buffer lenght.
|
||||
+ */
|
||||
+void
|
||||
+slapi_log_hexadump(int loglevel, char *fname, const void *addr, size_t len)
|
||||
+{
|
||||
+ char hexdigit[] = "0123456789ABCDEF";
|
||||
+ const unsigned char *pt = addr;
|
||||
+ char buff[HEXADUMP_BUF_SIZE+1];
|
||||
+ size_t offset = 0;
|
||||
+
|
||||
+ if (!slapi_is_loglevel_set(loglevel)) {
|
||||
+ return;
|
||||
+ }
|
||||
+ memset (buff, ' ', HEXADUMP_BUF_SIZE);
|
||||
+ buff[HEXADUMP_BUF_SIZE] = '\0';
|
||||
+ while (len > 0) {
|
||||
+ int dpl;
|
||||
+ for (dpl = 0; dpl < 16 && len>0; dpl++, len--) {
|
||||
+ buff[3*dpl] = hexdigit[((*pt) >> 4) & 0xf];
|
||||
+ buff[3*dpl+1] = hexdigit[(*pt) & 0xf];
|
||||
+ buff[3*16+HEXADUMP_TAB+dpl] = (*pt>=0x20 && *pt<0x7f) ? *pt : '.';
|
||||
+ pt++;
|
||||
+ }
|
||||
+ for (;dpl < 16; dpl++) {
|
||||
+ buff[3*dpl] = ' ';
|
||||
+ buff[3*dpl+1] = ' ';
|
||||
+ buff[3*16+HEXADUMP_TAB+dpl] = ' ';
|
||||
+ }
|
||||
+ slapi_log_err(loglevel, fname, "[0x%08lx] %s\n", offset, buff);
|
||||
+ offset += 16;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
/******************************************************************************
|
||||
* write in the access log
|
||||
******************************************************************************/
|
||||
diff --git a/ldap/servers/slapd/slapi-private.h b/ldap/servers/slapd/slapi-private.h
|
||||
index 72f4cd6f0..2da37ff6e 100644
|
||||
--- a/ldap/servers/slapd/slapi-private.h
|
||||
+++ b/ldap/servers/slapd/slapi-private.h
|
||||
@@ -1527,6 +1527,8 @@ void slapi_pblock_set_task_warning(Slapi_PBlock *pb, task_warning warning);
|
||||
int slapi_exists_or_add_internal(Slapi_DN *dn, const char *filter, const char *entry, const char *modifier_name);
|
||||
|
||||
void slapi_log_backtrace(int loglevel);
|
||||
+void slapi_log_hexadump(int loglevel, char *fname, const void *addr, size_t len);
|
||||
+
|
||||
|
||||
/*
|
||||
* accesslog.c
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -83,7 +83,7 @@ Provides: bundled(crate(cc)) = 1.2.51
|
||||
Provides: bundled(crate(cfg-if)) = 1.0.4
|
||||
Provides: bundled(crate(clap)) = 3.2.25
|
||||
Provides: bundled(crate(clap_lex)) = 0.2.4
|
||||
Provides: bundled(crate(concread)) = 0.5.7
|
||||
Provides: bundled(crate(concread)) = 0.5.10
|
||||
Provides: bundled(crate(crossbeam-epoch)) = 0.9.18
|
||||
Provides: bundled(crate(crossbeam-queue)) = 0.3.12
|
||||
Provides: bundled(crate(crossbeam-utils)) = 0.8.21
|
||||
@ -92,11 +92,11 @@ Provides: bundled(crate(errno)) = 0.3.14
|
||||
Provides: bundled(crate(fastrand)) = 2.3.0
|
||||
Provides: bundled(crate(fernet)) = 0.1.4
|
||||
Provides: bundled(crate(find-msvc-tools)) = 0.1.6
|
||||
Provides: bundled(crate(foldhash)) = 0.1.5
|
||||
Provides: bundled(crate(foldhash)) = 0.2.0
|
||||
Provides: bundled(crate(foreign-types)) = 0.3.2
|
||||
Provides: bundled(crate(foreign-types-shared)) = 0.1.1
|
||||
Provides: bundled(crate(getrandom)) = 0.3.4
|
||||
Provides: bundled(crate(hashbrown)) = 0.15.5
|
||||
Provides: bundled(crate(hashbrown)) = 0.16.1
|
||||
Provides: bundled(crate(heck)) = 0.4.1
|
||||
Provides: bundled(crate(hermit-abi)) = 0.1.19
|
||||
Provides: bundled(crate(indexmap)) = 1.9.3
|
||||
@ -105,7 +105,7 @@ Provides: bundled(crate(jobserver)) = 0.1.34
|
||||
Provides: bundled(crate(libc)) = 0.2.179
|
||||
Provides: bundled(crate(linux-raw-sys)) = 0.11.0
|
||||
Provides: bundled(crate(log)) = 0.4.29
|
||||
Provides: bundled(crate(lru)) = 0.13.0
|
||||
Provides: bundled(crate(lru)) = 0.16.3
|
||||
Provides: bundled(crate(memchr)) = 2.7.6
|
||||
Provides: bundled(crate(once_cell)) = 1.21.3
|
||||
Provides: bundled(crate(openssl)) = 0.10.75
|
||||
@ -278,8 +278,8 @@ Source4: 389-ds-base.sysusers
|
||||
Source5: https://fedorapeople.org/groups/389ds/libdb-5.3.28-59.tar.bz2
|
||||
%endif
|
||||
|
||||
Source6: vendor-%{version}-1.tar.gz
|
||||
Source7: Cargo-%{version}-1.lock
|
||||
Source6: vendor-%{version}-4.tar.gz
|
||||
Source7: Cargo-%{version}-4.lock
|
||||
|
||||
Patch: 0001-Issue-7096-During-replication-online-total-init-the-.patch
|
||||
Patch: 0002-Issue-Revise-paged-result-search-locking.patch
|
||||
@ -337,6 +337,14 @@ Patch: 0053-Issue-6758-Fix-Enable-Replication-dropdown-not-openi.patc
|
||||
Patch: 0054-Issue-7223-Remove-integerOrderingMatch-requirement-f.patch
|
||||
Patch: 0055-Issue-7236-Fix-GSSAPI-tests-7237.patch
|
||||
Patch: 0056-Issue-6753-Port-ticket-49039-test.patch
|
||||
Patch: 0057-Issue-5853-Update-concread-to-0.5.10.patch
|
||||
Patch: 0058-Issue-7271-plugins-that-create-threads-need-to-updat.patch
|
||||
Patch: 0059-Issue-7273-In-a-chaining-environment-binding-as-remo.patch
|
||||
Patch: 0060-Issue-7279-UI-Fix-typo-in-export-certificate-dialog-.patch
|
||||
Patch: 0061-Issue-7275-UI-Improve-password-policy-field-validati.patch
|
||||
Patch: 0062-Issue-7246-correct-formatting-of-Gen-as-CSN-in-dsctl.patch
|
||||
Patch: 0063-Security-fix-for-CVE-2025-14905.patch
|
||||
Patch: 0064-Issue-7267-MDB_BAD_VALSIZE-error-when-updating-index.patch
|
||||
|
||||
%description
|
||||
389 Directory Server is an LDAPv3 compliant server. The base package includes
|
||||
|
||||
4
sources
4
sources
@ -1,5 +1,5 @@
|
||||
SHA512 (jemalloc-5.3.0.tar.bz2) = 22907bb052096e2caffb6e4e23548aecc5cc9283dce476896a2b1127eee64170e3562fa2e7db9571298814a7a2c7df6e8d1fbe152bd3f3b0c1abec22a2de34b1
|
||||
SHA512 (libdb-5.3.28-59.tar.bz2) = 731a434fa2e6487ebb05c458b0437456eb9f7991284beb08cb3e21931e23bdeddddbc95bfabe3a2f9f029fe69cd33a2d4f0f5ce6a9811e9c3b940cb6fde4bf79
|
||||
SHA512 (389-ds-base-3.2.0.tar.bz2) = 9ff6aa56b30863c619f4f324344dca72cc883236bfe8d94520e8469d9e306f54b373ee2504eda18dcb0ecda33f915a3e64a6f3cdaa93a69b74d901caa48545e1
|
||||
SHA512 (Cargo-3.2.0-1.lock) = 96e724a6532e23920120116de1b67e6698b2fa435a59dc296e51a936ecdf91131c0499e359ece28b9c6d564db12fd86ff42f05b9ce856ba219b39be2847ac235
|
||||
SHA512 (vendor-3.2.0-1.tar.gz) = 04fe9ff8a08142641af07f5dc0729ef3e766dec622ec557dddaddacab9e7d39397d0c13392f757a9d50fd394d77305b2e2860559f34057ad8fdf3a84fa5e6579
|
||||
SHA512 (Cargo-3.2.0-4.lock) = bdd7228ebcc4d312d414f642cf59ac9f6c043b98482ea6dec780a3830d248429262c76993eec7b52939e9a750713cecb618cbff6b94ff7e3e76f6f240c76d322
|
||||
SHA512 (vendor-3.2.0-4.tar.gz) = b7daee9351fd007ef54a51a3c41f15fa5538b04341a85df2e889728569139ec4b94fcd7f167a2886bc29b40a01866774f6e6f78fbd80021e3fcfe393a95d7efb
|
||||
|
||||
Loading…
Reference in New Issue
Block a user