BZip2InputStream.Length reports an incorrect length
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 55/100
Piste de recherche
Commencez au point d’entrée BZip2InputStream.Length et reproduisez le comportement avec l’exemple StreamLengthTest fourni. Comparez la longueur indiquée aux octets renvoyés lors de la lecture du flux, puis ajoutez ou adaptez un test de régression afin que la longueur indiquée corresponde aux données décompressées lisibles.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Steps to reproduce
- Load already compressed bzip2 payload into a
MemoryStream - Create
BZip2InputStreamfrom saidMemoryStream Assert.AreNotEqual(memorystream.Length, bzip2stream.Length);
Example code is included below.
Expected behavior
BZip2InputStream.Length should return how many bytes the developer can expect to read from the stream.
Actual behavior
BZip2InputStream.Length returns 48, but only 11 bytes are actually available in the stream. Uncompressed data is a string of 11 bytes, compressed data blob is 48 bytes. It seems to just return the length reported by underlying stream.
Version of SharpZipLib
Version 1.3.1
Obtained from
- Package installed using NuGet
Example code
using System.IO;
using System.Threading.Tasks;
using ICSharpCode.SharpZipLib.BZip2;
using NUnit.Framework;
namespace Tests {
[TestFixture]
public class StreamLengthTest {
private static readonly byte[] CompressedChunk = {
0x42, 0x5a, 0x68, 0x39, 0x31, 0x41, 0x59, 0x26, 0x53, 0x59, 0xd5, 0xb7, 0x4b, 0xf5, 0x00, 0x00,
0x03, 0xc1, 0x80, 0x00, 0x10, 0x23, 0x84, 0x44, 0x00, 0x20, 0x00, 0x31, 0x0c, 0x08, 0x20, 0xd1,
0xb4, 0x8b, 0xa4, 0x28, 0x05, 0x3c, 0x5d, 0xc9, 0x14, 0xe1, 0x42, 0x43, 0x56, 0xdd, 0x2f, 0xd4
};
[Test]
public async Task Test() {
// Read the bzip2 blob into a memory stream
await using var memorystream = new MemoryStream(CompressedChunk);
// Create bzip2 stream from memorystream
await using var bzip2stream = new BZip2InputStream(memorystream);
// Sanity checks
Assert.AreEqual(48, CompressedChunk.Length, "The constant binary blob should have length 48");
Assert.AreEqual(CompressedChunk.Length, memorystream.Length, "memorystream should be a 1:1 representation of CompressedChunk. Lengths should match.");
Assert.IsTrue(memorystream.CanRead);
Assert.IsTrue(bzip2stream.CanRead);
// Read data from the stream
var expectedLength = bzip2stream.Length;
var actualLength = 0;
byte[] buffer = {0};
try {
while (0 < bzip2stream.Read(buffer, 0, 1)) {
actualLength++;
}
} catch { /* ignored */ }
// Observe results
Assert.AreEqual(expectedLength, actualLength, "Actual length should equal reported length");
}
}
}
- Langage dominant
- C#
- Étoiles
- 3.9k
- Forks
- 1k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de icsharpcode/SharpZipLib
-
*no response* bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
icsharpcode/SharpZipLib#905 · 1 commentaire ·
-
bug bzip2
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
icsharpcode/SharpZipLib#904 ·
-
SetLevel in ZipFileOuverteenhancement zip
Difficulté 2/5 1-2 jours Accessibilité débutants 55/100
icsharpcode/SharpZipLib#903 ·
-
*no response* bug
Difficulté 4/5 3-5 jours Accessibilité débutants 32/100
icsharpcode/SharpZipLib#901 · 1 commentaire ·
-
*no response* bug
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
icsharpcode/SharpZipLib#894 · 1 commentaire ·
Toutes les issues de icsharpcode/SharpZipLib
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
microsoft/onnxruntime-genai#2633 ·
Les mainteneurs répondent en général sous 1 jour
-
python triage
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
microsoft/semantic-kernel#14491 ·
Les mainteneurs répondent en général sous 2 jours
-
area:jobads-cv FE mvp P3
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
klasolsson81/jobbliggaren#1878 ·
Les mainteneurs répondent en général sous 1 jour
-
bug help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
pnp/pnpcore#1878 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
SubtitleEdit/subtitleedit#15331 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour