Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die TarReader Klasse überprüft nun die Prüfsumme der TAR-Archiveinträge während des Lesevorgangs. Wenn die Prüfsumme eines Eintrags ungültig ist, wirft TarReader ein InvalidDataException. Diese Änderung verbessert die Datenintegrität, indem sichergestellt wird, dass beschädigte oder manipulierte TAR-Dateien während der Verarbeitung erkannt und gekennzeichnet werden.
Eingeführt in Version
.NET 11 Preview 1
Vorheriges Verhalten
Beim Lesen eines TAR-Archivs mit einer ungültigen Prüfsumme TarReader wurde die Prüfsummenungültigkeit ignoriert, und die Verarbeitung des Archivs wurde fortgesetzt, ohne eine Ausnahme auszulösen.
Codebeispiel:
using System.Formats.Tar;
using System.IO;
using var stream = File.OpenRead("bad-cksum.tar");
using var reader = new TarReader(stream);
while (reader.GetNextEntry() is not null)
{
// Process entries, even if the checksum is invalid.
}
Wenn die TAR-Datei bad-cksum.tar einen Eintrag mit einer ungültigen Prüfsumme enthielt, würde der Code den Eintrag ohne Angabe des Problems verarbeiten.
Neues Verhalten
Ab .NET 11 löst TarReader beim Lesen eines TAR-Archivs mit einer ungültigen Prüfsumme ein InvalidDataException aus und beendet die Verarbeitung des Archivs. Die Ausnahmemeldung gibt den Prüfsummenüberprüfungsfehler an.
Art der einschneidenden Änderung
Diese Änderung ist eine Verhaltensänderung.
Grund für Änderung
Diese Änderung wurde eingeführt, um die Zuverlässigkeit und Sicherheit der System.Formats.Tar Bibliothek zu verbessern. Durch die Validierung von Prüfsummen kann die Nutzung beschädigter oder manipulierte TAR-Dateien erkannt und verhindert werden, um sicherzustellen, dass nur gültige Daten verarbeitet werden. Weitere Informationen finden Sie unter dotnet/runtime#118577 und dotnet/runtime#117455.
Empfohlene Aktion
Wenn Ihre Anwendung auf TarReader für die Verarbeitung von TAR-Archiven angewiesen ist:
- Aktualisieren Sie den Code so, dass die Ausnahme InvalidDataException möglicherweise ausgelöst wird, wenn eine Prüfsummenvalidierung fehlschlägt.
- Stellen Sie sicher, dass die verarbeiteten TAR-Dateien gültig sind und über korrekte Prüfsummen verfügen. Wenn Prüfsummenfehler auftreten, überprüfen Sie die Integrität der TAR-Quelldateien.
- Wenn Sie TAR-Dateien mit ungültigen Prüfsummen für bestimmte Szenarien verarbeiten müssen, sollten Sie eine benutzerdefinierte Fehlerbehandlung implementieren oder die Dateien vorverarbeiten, um die Prüfsummen zu korrigieren.
Aktualisiertes Beispiel:
using System.Formats.Tar;
using System.IO;
try
{
using var stream = File.OpenRead("archive.tar");
using var reader = new TarReader(stream);
while (reader.GetNextEntry() is not null)
{
// Process entries.
}
}
catch (InvalidDataException ex)
{
Console.WriteLine($"Error reading TAR archive: {ex.Message}");
// Handle invalid checksum scenario.
}