FastZip.CreateZip crashes when used with certain buggy Directory enumeration on .NET 5
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza en FastZip.cs, alrededor de la línea referenciada, e inspecciona cómo CreateZip utiliza FileSystemScanner. Revisa el punto de extensión solicitado y la solución alternativa de enumeración proporcionada; después, confirma que un llamador puede proporcionar un scanner personalizado para el caso descrito de .NET 5 sin que FastZip.CreateZip falle.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Not really a bug, more like a feature suggestion.
Steps to reproduce
- In .net 5, directory enumeration has bugs with WebDav (https://github.com/dotnet/runtime/issues/46723#issuecomment-928090089), not fixed in .net 6 and with no other immediate official solution in sight;
- This causes crashes when calling
FastZip.CreateZipas the GetDirectories/GetFiles return invalid data; - A workaround is available - use something like this on the GetDirectories-returned data:
public static string[] FixupNet5Enumeration(string[] items)
{
return items
.Select(t => t.TrimEnd('\0'))
.Where(t => {
var itemName = Path.GetFileName(t);
return itemName != "." && itemName != "..";
})
.ToArray();
}
- SharpZipLib nicely wraps the
Directory.GetDirectoriescall into theFileSystemScannerclass. However it is not possible to supply customFileSystemScanners toFastZip.CreateZip. It would be helpful in this case as I could just copy that class and insert the required fixup calls. It would be necessary to create an interface aroundFileSystemScannerand to change topublicthe method
What do you think?
Expected behavior
FastZip.CreateZip should offer an override to specify custom FileSystemScanners.
Actual behavior
FastZip.CreateZip throws exception as the paths returned by Directory.GetDirectories are not valid paths.
Version of SharpZipLib
1.3.3
Obtained from (only keep the relevant lines)
- Package installed using NuGet
- Lenguaje dominante
- C#
- Estrellas
- 3.9k
- Forks
- 1k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de icsharpcode/SharpZipLib
-
*no response* bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
icsharpcode/SharpZipLib#905 · 1 comentario ·
-
bug bzip2
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
icsharpcode/SharpZipLib#904 ·
-
SetLevel in ZipFileAbiertoenhancement zip
Dificultad 2/5 1-2 días Aptitud para principiantes 55/100
icsharpcode/SharpZipLib#903 ·
-
*no response* bug
Dificultad 4/5 3-5 días Aptitud para principiantes 32/100
icsharpcode/SharpZipLib#901 · 1 comentario ·
-
*no response* bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
icsharpcode/SharpZipLib#894 · 1 comentario ·
Todos los issues de icsharpcode/SharpZipLib
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
AvaloniaUI/Avalonia#22323 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
microsoft/onnxruntime-genai#2633 ·
Los mantenedores suelen responder en 1 día
-
FluentDataGrid: pinned column offsets leak into the grid of an open RowDetails (master-detail)AbiertoNot reproducible
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/fluentui-blazor#5350 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
python triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
microsoft/semantic-kernel#14491 ·
Los mantenedores suelen responder en 2 días
-
area:jobads-cv FE mvp P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
klasolsson81/jobbliggaren#1878 ·
Los mantenedores suelen responder en 1 día