Pull Request on 2026年06月11日

dotnet/runtimeにマージされたPull RequestをAIで日本語要約

注意点

このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。



#129297 cDAC stress build break: match GetObjectStringData's quirky dac behavior

  • 作成者: @leculver
  • 作成日時: 2026年06月11日 16:17:18(UTC)
  • マージ日時: 2026年06月11日 22:37:28(UTC)
  • ラベル: area-Diagnostics-cdac

概要

cDAC(Compact Data Access Component)の GetObjectStringData 実装をレガシーDAC(ClrDataAccess)の動作と一致させるもの。レガシーDAC では、有効な文字列に対して出力バッファなし(stringData == null または count == 0)で呼び出された場合、必要なバッファサイズを *pNeeded に格納しつつ E_INVALIDARG を返すが、cDAC は S_OK を返していた。cDAC の戻り値を E_INVALIDARG に修正し、HResult パリティアサーションの失敗を防ぐ。

変更内容

  • SOSDacImpl.cs: GetObjectStringData メソッドを修正。OutputBufferHelpers.CopyStringToBuffer で文字列コピー/長さ計算を行った後、出力バッファがない場合(stringData == null || count == 0)に E_INVALIDARG を返すよう変更。レガシーDAC との互換性意図を説明するコメントを追加。
  • request.cpp: 関連する調整(詳細は提供情報に含まれていません)

パフォーマンスへの影響

影響なし

関連Issue

dotnet/diagnostics#5865 により導入された cDAC ビルド/テスト破壊を修正

その他

本変更は内部実装の修正であり、cDAC と レガシーDAC 間の HResult パリティを確保するものです。公開APIの変更ではありません。


#129287 Fix W3CPropagator baggage parsing after malformed entries

概要

W3C Baggage ヘッダーのパース処理を改善し、不正な形式のエントリを検出した場合に解析全体を中止するのではなく、そのエントリをスキップして後続の有効なエントリの処理を続行するようにしました。これにより、部分的に不正な Baggage ヘッダーでも有効なデータを抽出できるようになります。

変更内容

  • W3CPropagator.cs: TryExtractBaggage ループの処理ロジックを変更し、不正なエントリ検出時に break ではなく continue を実行するよう修正(4行追加、2行削除)
  • W3CPropagatorTests.cs: 不正な Baggage エントリがスキップされ、有効なエントリが正常にデコードされることを検証するテストケースを追加(18行追加)

パフォーマンスへの影響

影響なし

関連Issue

#129286

その他

  • 変更範囲は System.Diagnostics.DiagnosticSource ライブラリの内部実装に限定
  • 分散トレーシング用の Baggage メタデータ処理の堅牢性向上を目的とした改善

#129273 Add MaxDepth to CborReader and CborWriter

概要

System.Formats.Cborに最大ネスト深度制限機能を追加。新しいCborReaderOptionsとCborWriterOptions型を導入し、CborReader/CborWriterにMaxDepthプロパティと対応するコンストラクタを追加。リーダーのデフォルトは64、ライターのデフォルトは1000(STJと共通)。MaxDepth==0は「深度なし」を意味する(Utf8JsonReader/Utf8JsonWriterと異なり)。

変更内容

  • CborReaderOptions.cs(新規): MaxDepth検証を含む設定型を新規追加
  • CborWriterOptions.cs(新規): MaxDepthとInitialCapacityの検証を含む設定型を新規追加
  • CborReader.cs: MaxDepthプロパティ、オプション対応コンストラクタ、深度チェックヘルパー追加
  • CborWriter.cs: MaxDepthプロパティ、オプション対応コンストラクタ、WriteEncodedValueの深度検証、深度チェックヘルパー追加
  • CborReader.Array.cs / CborReader.Map.cs / CborReader.String.cs: 配列/マップ/不定長文字列開始時のMaxDepth強制
  • CborWriter.Array.cs / CborWriter.Map.cs / CborWriter.String.cs: 配列/マップ/不定長文字列開始時のMaxDepth強制
  • 参照ドキュメント: 新規オプション型、新規コンストラクタオーバーロード、MaxDepthプロパティを公開API表面に追加
  • テスト: デフォルト値、オプション検証、深度制限動作(SkipValue/ReadEncodedValueを含む)のカバレッジ追加

パフォーマンスへの影響

影響なし(深度チェックは必要な場面でのみ実行)

関連Issue

#128087

その他

  • MaxDepth==0は「深度制限なし」ではなく「深度許可なし」として設計されている。これによりWriteEncodedValueの境界ケース処理を単純化
  • ExceptionPolyfills.csに下位互換用のArgumentOutOfRangeException.ThrowIfLessThanポリフィルを追加
  • 公開API(破壊的変更なし、新規オプション型と新規コンストラクタオーバーロードのみ追加)

#129269 JIT: stop walking parent try regions across funclet boundaries

概要

JITコンパイラのFlowGraphTryRegions::Buildメソッドにおいて、ブロックを親try領域の祖先に追加する際に、funclet境界を超えないようにする修正です。ハンドラー領域に存在するブロックが外側のtryに誤って含まれるのを防ぎ、Wasm制御フロー最適化でのRPOレイアウト生成時のアサーション失敗を解決します。

変更内容

  • src/coreclr/jit/flowgraph.cpp: FlowGraphTryRegions::Build内の親try領域チェーンの走査時に、ハンドラー領域の境界チェックを追加。既存のBasicBlock::sameHndRegion判定条件を使用して、初期領域追加時と祖先伝播時の動作を一貫させています。

パフォーマンスへの影響

影響なし

関連Issue

#129262

その他

この変更はJIT内部実装(コンパイラ最適化パス)に限定され、公開APIへの影響はありません。funclet(例外ハンドラーの別関数化)とtry領域の相互作用に関する正確性の修正であり、特定のWasm制御フロー処理で発生していたアサーション失敗(fgwasm.cpp:1355)を解決します。


#129268 JIT: clone "i != arr.Length" loops to eliminate bounds checks

概要

i != end ループ形式での境界チェック除外を実現するJIT最適化の拡張です。従来、i < end / i > end 形式ではループクローニングにより境界チェックが除外されていましたが、i != end 形式ではこの最適化が機能していませんでした。GT_NE演算子をサポートするよう NaturalLoopIterInfo を拡張し、ループクローニング条件生成ロジックを改善することで、!= ループに対しても効果的な境界チェック除外を実現します。

変更内容

  • flowgraph.cpp: NaturalLoopIterInfo でストライド +/-1 の GT_NE ループを増減ループとして認識する処理を追加
  • loopcloning.cpp: optDeriveLoopCloningConditions を拡張し、GT_NE に対応した適切なアクセス条件とゼロトリップ条件を生成。また新たに "init RELOP end" クローニング条件を追加し、初期化値が不正な場合(GT_NE で型ラッピングの可能性がある場合)は低速パスにフォールバック
  • Runtime_84697.cs: GT_NE ループでの境界チェック除外動作を検証するリグレッションテスト (133行を追加)
  • Regression_o_3.csproj: テストプロジェクト参照を更新

パフォーマンスへの影響

改善あり:i != end ループが従来同様の境界チェック除外最適化を受けられるようになり、これらループ形式のパフォーマンス向上が期待できます。具体的なベンチマーク数値は提供されていません。

関連Issue

#84697 - #129176

その他

  • この変更は #129176(減少ループの健全性ギャップ修正)の上に構築されています
  • アサーション伝播/範囲チェック最適化による後続対応で、ループクローニング ヒューリスティックスの対象外となる NE ループケースを処理予定です

#129231 [ci-scan] Tighten agentic CI workflow dedup and feedback emission

概要

CI/CD ワークフローの Known Build Error (KBE) 検出とフィードバック機構を改善するプルリクエストです。重複検出を強化し、最近クローズされた KBE やラベルなしの人為的報告を捉え、スケジュール実行時のフィードバック送信の堅牢性を向上させます。

変更内容

  • .github/workflows/shared/create-kbe.instructions.md: 重複検出ロジックを拡張。最近クローズされた KBE の検索セクションとラベルなしのオープンIssue検索を追加し、重複 KBE 作成を削減
  • .github/workflows/ci-failure-scan.md: スキャンワークフローを新しいデデュープロセスに対応させ、「最近クローズ」スキップ結果を認識
  • .github/workflows/ci-failure-scan-feedback.md: スケジュール実行時に PR 番号を明示的に渡し、KPI トラッカー出力を PR 安全出力の前に配置してプッシュ失敗時のデータロスを防止

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • プロンプトはランタイムにインポートされるため、コンパイル済みワークフローファイルの再生成は不要
  • この変更により、繰り返し発生した失敗は人的レビュー対象からスキップされ、スケジュール実行時のフィードバック送信の信頼性が向上します

#129225 Simplify winsock initialization

概要

Winsock初期化処理の簡略化。Interop.WSAStartup.csにおいて初期化ロジックを単純化し、コードの可読性と保守性を向上させています。

変更内容

  • src/libraries/Common/src/Interop/Windows/WinSock/Interop.WSAStartup.cs: 3行追加、3行削除(計6行の変更)
    • Winsock初期化に関連する実装の簡略化

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

なし


#129222 Set ARMEL for TIZEN

  • 作成者: @clamp03
  • 作成日時: 2026年06月10日 08:36:00(UTC)
  • マージ日時: 2026年06月11日 02:04:47(UTC)
  • ラベル: area-Infrastructure

概要

Tizen ARM ターゲットの ARMEL アーキテクチャ識別を修正するPRです。#127578 の変更後、Tizen ARM ホストを正しく識別し CLR_CMAKE_HOST_ARCH を "armel" に設定することで、必要な SOFTFP ビルドオプションが適切に適用され、ランタイム障害が解決されます。

変更内容

  • eng/native/configureplatform.cmake: Tizen ARM ターゲットの識別とアーキテクチャ設定ロジックを修正(+5/-1)

パフォーマンスへの影響

影響なし

関連Issue

#127578

その他

  • Tizen プラットフォーム固有の設定変更
  • SOFTFP(ソフトウェア浮動小数点)ビルドオプションの適用に関連

#129205 [Wasm RyuJit]: don't skip top-level catchrets when marking try resumption

概要

WebAssembly上のRyuJitにおいて、FlowGraphTryRegions::Buildで最上位のcatchretブロック処理を正しく行うように修正しました。これまでcatchretブロックがtryIndexを持たない場合(外側のcatchなど)、そのcatchretが関連するtry領域をランタイム再開必須としてマークしていませんでした。また、try領域を部分的に含むループのwasm-interval長を拡張し、throw helperを含めるようにし、overflow helper関数の呼び出しで渡される余分な引数の問題も修正しています。

変更内容

  • src/coreclr/jit/fgwasm.cpp: BBJ_EHCATCHRETの処理を早期bailout(!block->hasTryIndex()チェック)の前に移動して、最上位のcatchretが確実にマークされるように修正。ループの終了位置をwasm-interval長に合わせて拡張するロジックを追加。
  • src/coreclr/jit/flowgraph.cpp: overflow helperへの余分な引数渡しの問題を修正。
  • src/coreclr/jit/gentree.cpp: 軽微な修正。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • Wasmプラットフォーム固有の問題です。ネイティブでは余分な引数を渡すことはレジスタ引数の場合など比較的無害ですが、Wasmではそうではありません。
  • Wasmの制御フローでは、ループの終了位置をより後ろに移動することが可能で、その範囲はループヘッドへの分岐が可能な位置を示しており、ループの実際の範囲ではないことに注意してください。

#129195 Merging internal commits for release/8.0

概要

release/8.0の内部変更をマージするPRです。主な改善として、(1) ByValTStrによる固定サイズANSI文字列マーシャリング(NativeAOT対応)の安全性向上、(2) シンボリックリンクを経由したディレクトリトラバーサル攻撃を防ぐためのtar抽出パス検証の強化が含まれます。

変更内容

  • NativeAOTマーシャリング (PInvokeMarshal.cs, InteropHelpers.cs): ByValTStrシナリオで固定バッファのオーバーフロー防止のため、ANSI文字列マーシャリングに境界付きバッファサポートを追加
  • Tar抽出のセキュリティ強化 (TarEntry.cs): エントリ抽出時に中間パスコンポーネント(シンボリックリンク)を1段階ずつ解決し、ディレクトリトラバーサル検出を実装
  • 回帰テスト追加:
    • StructureToPtrTests.cs: ByValTStrのUnix UTF-8マルチバイト溢れと ASCII切り詰め動作を検証
    • TarFile.ExtractToDirectory*.Tests.cs: シンボリックリンク経由のパストラバーサル防止を検証

パフォーマンスへの影響

パス検証ロジック追加によりtar抽出時にシンボリックリンク解決のオーバーヘッドが発生しますが、セキュリティ向上のための必要な処理です。具体的なベンチマーク数値は提供されていません。

関連Issue

なし

その他

  • 内部リリース変更のマージのため、公開APIの破壊的変更はありません
  • NativeAOT対応の改善により、リフレクション不要な環境でのマーシャリング動作がより堅牢になります
  • tar抽出のセキュリティ向上は、悪意のあるtarファイルに対する防御を強化します

#129194 Merging internal commits for release/9.0

概要

release/9.0の内部変更をマージするPRです。Tar抽出時のパス安全性を強化(シンリンクチェーン走査対策を含む)し、NativeAOT ANSI固定バッファ(ByValTStr)文字列マーシャリングをCoreCLRの動作に合わせて調整しています。

変更内容

  • TarEntry.cs: シンリンク解決による各パスコンポーネントでのディレクトリエスケープ検出を追加。抽出時のパス検証ロジックが強化され、悪意のあるtar圧縮ファイルによる探索攻撃対策が施されています(内部実装)。
  • TarFile抽出テスト: シンリンクベースのディレクトリ走査を拒否するテストケース(98行)を追加。ファイル・ストリーム・非同期処理の各パターンで回帰テストを実装。
  • PInvokeMarshal.cs: NativeAOTのStringToAnsiStringに有界バッファサポートを追加し、null終端の動作を調整(内部実装)。
  • InteropHelpers.cs: ByVal ANSI文字列で新しい有界バッファマーシャリングパスを使用(内部実装)。
  • StructureToPtrTests.cs: ByValTStrのマルチバイトオーバーフロー(Unix)およびASCII切り詰め動作の回帰テストを追加(54行)。

パフォーマンスへの影響

影響なし(セキュリティ強化とテスト追加のみ)

関連Issue

なし

その他

このPRは内部リリースマージです。セキュリティ面では、Tar抽出時のシンリンク走査による任意のファイル書き込みを防ぐ重要な修正が含まれています。NativeAOTとCoreCLRの相互運用性の一貫性も向上します。


#129175 remove code-review agent exclude

  • 作成者: @mangod9
  • 作成日時: 2026年06月09日 15:30:59(UTC)
  • マージ日時: 2026年06月11日 22:15:33(UTC)
  • ラベル: area-Infrastructure

概要

.github/copilot-instructions.mdからcode-reviewエージェントの除外設定を削除し、デフォルトのCopilot Code Review(CCR)エージェントがカスタマイズされたレビュースキルを使用できるようにする変更です。

変更内容

  • .github/copilot-instructions.md: YAMLフロントマターからexcludeAgent: code-reviewを削除
    • 削除行数: 3行
    • 追加行数: 1行

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更により、Copilot Code Reviewエージェントがリポジトリのグローバルワークフロー/ビルド指示にアクセスし、カスタマイズされたレビュースキルを適用できるようになります。


#129115 [main] Update dependencies from dotnet/xharness

概要

dotnet/xharnessの依存関係を更新するPull Requestです。Microsoft.DotNet.XHarness関連のパッケージを11.0.0-prerelease.26279.1から11.0.0-prerelease.26301.2にアップデートします。

変更内容

  • .config/dotnet-tools.json: ツール設定の更新(1行追加、1行削除)
  • eng/Version.Details.props: バージョン詳細設定の更新(3行追加、3行削除)
  • eng/Version.Details.xml: バージョン詳細情報の更新(6行追加、6行削除)

更新対象パッケージ:

  • Microsoft.DotNet.XHarness.CLI
  • Microsoft.DotNet.XHarness.TestRunners.Common
  • Microsoft.DotNet.XHarness.TestRunners.Xunit

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPull Requestは自動依存関係更新ツール(dotnet-maestro[bot])による定期的なアップデートです。XHarnessはテスト実行支援ツールであるため、テスト実行環境への影響がある可能性があります。


#129092 JIT: Tail-merge don't produce empty blocks

概要

JITのtail-merge最適化フェーズで空のブロック(empty blocks)が生成されないようにします。これにより、ダウンストリームフェーズが空のブロックの位置に依存して予期しない性能低下(regressions)が発生する問題を回避します。「optimize control flow」フェーズが先行して空のブロックを削除しているため、tail-mergeでも同様に空のブロックを生成しないことで一貫性を保ちます。

変更内容

  • src/coreclr/jit/fgopt.cpp: tail-merge処理のロジックを修正し、最適化結果として空のブロックが生成されないように変更(+48/-7)

パフォーマンスへの影響

ダウンストリームの最適化フェーズが空のブロックの位置に左右されることによる予測不可能な性能低下を解消します。ただし、具体的なベンチマーク数値は提供されていません。

関連Issue

#129092

その他

この変更は、crossJumpVictim選択ロジック改善に向けた別の変更の前準備として実施されています。


#129080 Port bootstrap build on OpenBSD

概要

OpenBSD上での.NETランタイムのブートストラップビルドを有効にするためのポートです。CMakeビルド設定、PAL(Platform Abstraction Layer)、ネイティブAOT関連のコンポーネントに対して、OpenBSD固有の条件分岐やコンテキスト処理を追加します。

変更内容

  • CMakeビルド設定(eng/native/): OpenBSD用のコンパイラ設定と関数判定を追加
  • PAL/コンテキスト処理: OpenBSD向けのシグナルハンドラーコンテキスト構造体定義と例外処理実装(pal/src/include/pal/context.h、pal/src/thread/context.cpp)
  • ネイティブAOT: NativeContext.cpp、PalUnix.cppでOpenBSD対応のコンテキスト復元ロジックを実装
  • ファイル操作: OpenBSDのファイルシステム対応(pal/src/file/file.cpp)
  • セキュアCRT: vsprintf実装にOpenBSD対応の書式文字列処理を追加
  • テスト: PALスイート用のOpenBSD例外型情報エクスポートファイルを追加
  • アーキテクチャサポート: AMD64向けのアセンブリマクロとシグナルハンドラーヘルパーを拡張

パフォーマンスへの影響

影響なし

関連Issue

#124911

その他

  • 複数の条件付きコンパイルディレクティブ(#ifdef/#if defined)でOpenBSD環境を判定
  • 既存のLinux/Unix系実装との互換性を保持しながら段階的にOpenBSD対応を追加
  • ネイティブコンテキスト構造体のメモリレイアウト調整が含まれており、シグナルハンドラー・例外処理に影響する可能性あり

#129017 Align manifest assembly MVID table to 4 bytes in composite R2R images

  • 作成者: @jtschuster
  • 作成日時: 2026年06月04日 22:10:40(UTC)
  • マージ日時: 2026年06月11日 12:04:51(UTC)
  • ラベル: area-ReadyToRun

概要

Composite Ready-to-Run イメージにおいて、マニフェストアセンブリ MVID テーブルのアラインメントを 1 バイトから 4 バイトに変更し、32-bit ARM での SIGBUS(アラインメント障害)を修正します。CoreCLR ランタイムが MVID テーブルの各エントリを GUID 値として読み込む際に 4 バイトアラインメントが必要ですが、前の ReadOnlyData ノードのサイズによってはテーブルが非 4 バイト境界に配置される可能性がありました。

変更内容

  • ManifestAssemblyMvidHeaderNode.cs: マニフェストアセンブリ MVID テーブルのアラインメント値を 4 に変更し、アラインメント要件を説明するコメントを追加
  • R2RTestSuites.cs: テストケースを追加(80 行追加)
  • R2RResultChecker.cs: テスト検証ロジックを追加(34 行追加)

パフォーマンスへの影響

パディングによる若干のメモリ使用量増加の可能性がありますが、MVID テーブルは小規模なため実質的な影響なし。ただし、ARM32 での実行時クラッシュを完全に排除することで信頼性が大幅に向上します。

関連Issue

なし

その他

  • この修正は 32-bit ARM に限定されるものではなく、すべての composite R2R イメージに適用されます
  • デバッグディレクトリエントリ(例:--pdb)を含む composite イメージでは、NativeDebugDirectoryEntryNode が MVID テーブルの前に配置される際に特に問題が発生しやすくなっていました
  • 修正内容は CoreCLR ランタイムの readytoruninfo.cpp の読込パターンに対応するもので、公開 API ではなく ReadyToRun コンパイラの内部実装です

#128906 Update GetRangeFromAssertions to handle some basic TYP_LONG scenarios where it FitsIn<int32_t>

概要

JITコンパイラのGetRangeFromAssertionsを拡張し、int32に収まるTYP_LONG値に対するアサーション基盤の範囲導出を改善します。これにより、シフト演算やその他のVN操作を含むTYP_LONGシナリオに対応し、より多くのバウンズチェック最適化が可能になります。

変更内容

  • valuenum.h: IsVNIntegralConstantを更新し、int64_t強制変換によりint32に収まるTYP_LONG定数を認識可能に
  • rangecheck.h: GetRangeFromAssertionsシグネチャを更新、型明示パラメータを追加、Range::IsUnknown()ヘルパーを追加
  • rangecheck.cpp: 型付きアサーション範囲ロジックを実装、より多くのケースで範囲計算がこれを参照するよう拡張
  • assertionprop.cpp: アサーション伝播の折畳みを新APIに適応、TYP_LONGでint32ベースのRangeに表現不可能な場合は未知の範囲を許容

パフォーマンスへの影響

改善点:TYP_LONG値のより正確な範囲解析により、バウンズチェックの除去や定数畳み込みが増加し、コード生成の最適化が向上

懸念点:Copilotのレビューで指摘された符号変更キャスト(int → uint、uint → longなど)の範囲伝播に関する潜在的な音声性問題が存在。キャスト前後で範囲が正確に変換されない場合がある

関連Issue

#128676(代替PR)

その他

本PRは反復検証段階にあり、diffおよびテスト結果の受け入れ可能性確認が必要です。複数の異なるレビュー段階がリストアップされており、最終的なレビュー準備前に調整が必要な可能性があります。


#128316 Generate TLS alerts on certificate validation failure on macOS

概要

macOSのSecureTransportにおいて、証明書検証失敗時にTLS alertフレームを明示的にワイヤー上に送信するよう修正しました。これまではWindows/Linux/Androidと異なり、TCPの接続リセットのみでalertを送信していませんでした。RFC 5246 §7.2 / RFC 8446 §6.2に従い、他のプラットフォームとの動作統一を実現します。

変更内容

Apple PAL (ネイティブ層)

  • AppleCryptoNative_SslSetErrorを新規追加し、SecureTransportの内部エラー状態を設定
  • TLS alertメッセージ列挙型と、alertコードからOSStatusへのマッピング実装

管理層(System.Net.Security)

  • SecurityStatusPalにCertValidationNeeded(認証完了時に検証が必要)とCertValidationFailed(検証失敗)の新しい状態コード追加
  • SslStreamPal.OSX.cs: SecureTransportでCertValidationNeededを返却し、証明書検証失敗時にalertフレーム生成・送信
  • SslStream.Protocol.cs: Apple PAL向けに証明書検証パイプラインをハンドシェイク中に実行し、失敗時にTlsFrameHelper.CreateAlertFrameでalertペイロード生成
  • TlsFrameHelper.cs: TLS 1.0サポート修正((int)version >= Tls条件に対応)
  • Windows/Unix/AndroidではCanGenerateCustomAlertsForContextを定数実装、OSXではSafeDeleteSslContextのみカスタムalert生成をサポート
  • 例外の透過性: CertValidationFailed時に証明書検証例外を直接再スロー(他プラットフォームと一致)

テスト追加

  • SslStreamAlertsTest: macOS固有の機能テスト2件
    • SslStream_NoCallback_UntrustedCert_SendsUnknownCAAlert_OSX: クライアント側でサーバー証明書信頼失敗時にunknown_ca(48)がワイヤー上に到達
    • SslStream_NoCallback_UntrustedClientCert_ServerSendsUnknownCAAlert_OSX: サーバー側で相互認証時にクライアント証明書失敗でalert送信
    • RecordingReadStreamを用いて実際のalertフレームバイトを検証
  • TlsAlertsMatchWindowsInterop: TLS 1.0/1.1/1.2のレコードフレーミング検証追加

パフォーマンスへの影響

影響なし

関連Issue

#127053

その他

  • Network.framework(System.Net.Security.UseNetworkFrameworkオプト イン)は非同期コンテキスト動作のため変更対象外
  • alertの説明コードは既存のWindows/Linuxマッピング仕様に従う(チェーンビルド失敗→unknown_ca、名前不一致→bad_certificate、証明書欠落→certificate_unknown)
  • GitHub Copilot CLIの支援下で開発・検証された変更

#128223 [release/8.0] Update dependencies from dotnet/emsdk

概要

dotnet/emsdkリポジトリの依存関係を更新するための自動化されたPull Requestです。Emscripten関連のワークロードマニフェストと中間ビルドパッケージをバージョン8.0.28から8.0.29へアップデートしています。

変更内容

  • NuGet.config: NuGetフィード構成を1行更新
  • eng/Version.Details.xml: 以下の2つのパッケージバージョンを更新
    • Microsoft.SourceBuild.Intermediate.emsdk: 8.0.28-servicing.26258.2 → 8.0.29-servicing.26303.5
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100: 8.0.28 → 8.0.29
  • eng/Versions.props: バージョン情報を1行更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

本PRは自動化された依存関係更新ツール(dotnet-maestro)により生成されました。release/8.0ブランチを対象とした定期的なメンテナンスアップデートです。


#127844 fix: use Stopwatch for ReflectionEmitCachingMemberAccessor TTL

概要

ReflectionEmitCachingMemberAccessor.CacheのTTL(Time To Live)計測ロジックを、DateTime.UtcNow.Ticksから単調増加するStopwatch.GetTimestamp()に変更します。これによりNTPステップなどの壁時計調整による影響を排除し、キャッシュ削除間隔とスライディング有効期限の計算をより堅牢にします。

変更内容

  • ReflectionEmitCachingMemberAccessor.Cache.cs: キャッシュのTTL管理をStopwatchベースに変更

    • DateTime.UtcNow.TicksからStopwatch.GetTimestamp()/Stopwatch.GetElapsedTime(...)への切り替え
    • 削除/有効期限設定をTickカウント形式からTimeSpanに変更
  • System.Text.Json.csproj: ダウンレベルTFM対応

    • StopwatchPolyfills.csを.NETCoreApp以外のビルドに追加し、Stopwatch.GetElapsedTimeの可用性を確保

パフォーマンスへの影響

影響なし。タイムスタンプの取得方法が変わるのみで、キャッシュのロジック自体に性能上の変化はありません。

関連Issue

#127303

その他

  • 既存のWinHttpHandler.CachedCertificateValueのパターンに合わせた実装です
  • 壁時計の調整(NTP同期など)に対して耐性を持つようになり、本番環境での信頼性が向上します

#127190 Prefer using non-deprecated EC OSSL APIs where possible

概要

OpenSSL 3.0以降で非推奨のEC_KEYAPIを避け、モダンなEVP_PKEYベースのAPIを優先するよう楕円曲線(EC)暗号化処理を改善しました。OpenSSL 3.0以前では従来のEC_KEYコードパスをフォールバックとして保持します。新しいネイティブAPIはFEATURE_DISTRO_AGNOSTIC_SSLのAPI_EXISTSでガードされています。

変更内容

  • ネイティブ層 (pal_ecc_import_export.c/h):EVP_PKEYベースのEC鍵生成・インポート・エクスポート関数を追加
  • OpenSSL Shim (opensslshim.h):OpenSSL 3.0のパラメータビルド・鍵生成APIをライトアップ
  • マネージド層 (ECOpenSsl.cs, ECDiffieHellmanOpenSsl*.cs):EVP_PKEYパスを優先し、レガシーEC_KEY APIにフォールバック
  • P/Invoke (Interop.EcDsa.ImportExport.cs):新しいネイティブ関数のラッパーを追加
  • 統一EC API (EC_GROUP_get/set_curve, EC_POINT_get/set_affine_coordinates):REQUIREDに昇格(OpenSSL 1.1.1以降で利用可能)
  • テスト追加:ECDsaおよびECDiffieHellmanの新パス検証テストを拡充

パフォーマンスへの影響

影響なし

関連Issue

#127190

その他

Copilotレビューにより、CryptoNative_EcKeyCreateByKeyParameters関数でOpenSSL設定によりEC_KEY APIが利用不可の場合のNULLポインタデリファレンス防止の改善提案あり。互換性への影響はなく、内部実装の改善となります。


#127087 [browser][wasm] Fix buffered symbol asset loading

概要

WebAssemblyランタイムのブラウザローダーにおいて、buffer経由で提供されるsymbolsアセットの処理を修正しました。従来はpendingDownloadが事実上必須でしたが、この修正によりbufferでの供給が正常に機能するようになります。同時に、バッファアセットを使用するシナリオの回帰テストを追加しました。

変更内容

  • assets.ts: ローダーのsymbolsアセット処理を修正し、buffer経由で提供されたデータを正しく処理。buffered-response shimに.text()メソッドを実装し、テキスト形式のシンボルマップ読み込みフローとの互換性を維持
  • main.js: BufferedAssetsTestシナリオを追加。onConfigLoaded時点でdotnetwasm、アセンブリ、PDB、シンボルをasset.buffer経由で供給
  • ModuleConfigTests.cs: シンボルマップ出力を有効にした状態で新シナリオを実行するintegration test (ModuleConfigTests.BufferedAssetsTest)を追加
  • ProjectProviderBase.cs: テスト基盤の調整(詳細は提供情報に限定)

パフォーマンスへの影響

影響なし(修正はアセット読み込みロジックの正確性を目的とし、パフォーマンス特性の変更は含まない)

関連Issue

#127087

その他

  • ローカル環境でのWBT/workload packaging設定の問題により、ブラウザテストのエンドツーエンド検証が未実施。CI実行結果に応じて追加修正の可能性あり
  • CopilotレビューでTextDecoderの再構築オーバーヘッド(低信頼度コメント)が指摘されているが、実装への反映状況は提供情報に含まれていない

#126394 [release/8.0] Update dependencies from dotnet/arcade

概要

dotnet/arcadeリポジトリからの依存パッケージを更新するPull Requestです。release/8.0ブランチの複数のビルドタスク、SDK、テストユーティリティパッケージを最新版に更新します。

変更内容

  • eng/Version.Details.xml: 17個のパッケージのバージョン情報を8.0.0-beta.26224.3から8.0.0-beta.26278.3に更新
    • Microsoft.DotNet.Arcade.Sdk
    • Microsoft.DotNet.Build.Tasks.* (Archives, Feed, Installers, Packaging, TargetFramework, Templating, Workloads)
    • Microsoft.DotNet.CodeAnalysis、GenAPI、GenFacades
    • Microsoft.DotNet.Helix.Sdk、PackageTesting、RemoteExecutor
    • Microsoft.DotNet.SharedFramework.Sdk、VersionTools.Tasks、XUnitExtensions
  • eng/Versions.props: 対応するバージョン定義の更新
  • global.json: ビルドツールチェーンの参照情報を更新
  • Microsoft.DotNet.XUnitConsoleRunner: 2.5.1-beta.26224.3から2.5.1-beta.26278.3に更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRはdotnet-maestro[bot]による自動依存更新です。release/8.0ブランチの標準メンテナンス手続きの一部です。


目次