Skip to content

Commit

Permalink
Auto merge of #137181 - cuviper:stable-next, r=cuviper
Browse files Browse the repository at this point in the history
Prepare Rust 1.85.0 stable release

This includes a relnotes sync and a few last-minute backports:

- change `literal_string_with_formatting_args` lint category to nursery #136982
- Update the reference for reverted `extended_varargs_abi_support` #136934
- fix musl's CVE-2025-26519 #137127

r? cuviper
  • Loading branch information
bors committed Feb 17, 2025
2 parents 461de74 + 86193fa commit 4d91de4
Show file tree
Hide file tree
Showing 9 changed files with 311 additions and 57 deletions.
3 changes: 0 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,6 @@ jobs:
# which then uses log commands to actually set them.
EXTRA_VARIABLES: ${{ toJson(matrix.env) }}

- name: setup upstream remote
run: src/ci/scripts/setup-upstream-remote.sh

- name: ensure the channel matches the target branch
run: src/ci/scripts/verify-channel.sh

Expand Down
266 changes: 264 additions & 2 deletions RELEASES.md

Large diffs are not rendered by default.

16 changes: 3 additions & 13 deletions src/build_helper/src/git.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
use std::path::{Path, PathBuf};
use std::process::{Command, Stdio};

use crate::ci::CiEnv;

pub struct GitConfig<'a> {
pub git_repository: &'a str,
pub nightly_branch: &'a str,
Expand Down Expand Up @@ -116,8 +114,8 @@ fn git_upstream_merge_base(

/// Searches for the nearest merge commit in the repository that also exists upstream.
///
/// It looks for the most recent commit made by the merge bot by matching the author's email
/// address with the merge bot's email.
/// If it fails to find the upstream remote, it then looks for the most recent commit made
/// by the merge bot by matching the author's email address with the merge bot's email.
pub fn get_closest_merge_commit(
git_dir: Option<&Path>,
config: &GitConfig<'_>,
Expand All @@ -129,15 +127,7 @@ pub fn get_closest_merge_commit(
git.current_dir(git_dir);
}

let merge_base = {
if CiEnv::is_ci() {
git_upstream_merge_base(config, git_dir).unwrap()
} else {
// For non-CI environments, ignore rust-lang/rust upstream as it usually gets
// outdated very quickly.
"HEAD".to_string()
}
};
let merge_base = git_upstream_merge_base(config, git_dir).unwrap_or_else(|_| "HEAD".into());

git.args([
"rev-list",
Expand Down
2 changes: 1 addition & 1 deletion src/ci/channel
Original file line number Diff line number Diff line change
@@ -1 +1 @@
beta
stable
41 changes: 41 additions & 0 deletions src/ci/docker/scripts/musl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,47 @@ MUSL=musl-1.2.3
# may have been downloaded in a previous run
if [ ! -d $MUSL ]; then
curl https://www.musl-libc.org/releases/$MUSL.tar.gz | tar xzf -

# Apply patches for CVE-2025-26519. At the time of adding these patches no release containing them
# has been published by the musl project, so we just apply them directly on top of the version we
# were distributing already. The patches should be removed once we upgrade to musl >= 1.2.6.
#
# Advisory: https://www.openwall.com/lists/musl/2025/02/13/1
#
# Patches applied:
# - https://www.openwall.com/lists/musl/2025/02/13/1/1
# - https://www.openwall.com/lists/musl/2025/02/13/1/2
#
# ignore-tidy-tab
# ignore-tidy-linelength
patch -p1 -d $MUSL <<EOF
--- a/src/locale/iconv.c
+++ b/src/locale/iconv.c
@@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
if (c >= 93 || d >= 94) {
c += (0xa1-0x81);
d += 0xa1;
- if (c >= 93 || c>=0xc6-0x81 && d>0x52)
+ if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52)
goto ilseq;
if (d-'A'<26) d = d-'A';
else if (d-'a'<26) d = d-'a'+26;
EOF
patch -p1 -d $MUSL <<EOF
--- a/src/locale/iconv.c
+++ b/src/locale/iconv.c
@@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
if (*outb < k) goto toobig;
memcpy(*out, tmp, k);
} else k = wctomb_utf8(*out, c);
+ /* This failure condition should be unreachable, but
+ * is included to prevent decoder bugs from translating
+ * into advancement outside the output buffer range. */
+ if (k>4) goto ilseq;
*out += k;
*outb -= k;
break;
EOF
fi

cd $MUSL
Expand Down
24 changes: 0 additions & 24 deletions src/ci/scripts/setup-upstream-remote.sh

This file was deleted.

12 changes: 0 additions & 12 deletions src/ci/shared.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,15 +137,3 @@ function releaseChannel {
echo $RUST_CI_OVERRIDE_RELEASE_CHANNEL
fi
}

# Parse values from src/stage0 file by key
function parse_stage0_file_by_key {
local key="$1"
local file="$ci_dir/../stage0"
local value=$(awk -F= '{a[$1]=$2} END {print(a["'$key'"])}' $file)
if [ -z "$value" ]; then
echo "ERROR: Key '$key' not found in '$file'."
exit 1
fi
echo "$value"
}
2 changes: 1 addition & 1 deletion src/doc/reference
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ declare_clippy_lint! {
/// ```
#[clippy::version = "1.83.0"]
pub LITERAL_STRING_WITH_FORMATTING_ARGS,
suspicious,
nursery,
"Checks if string literals have formatting arguments"
}

Expand Down

0 comments on commit 4d91de4

Please sign in to comment.