FileStream ReadAsync method fails with invalid argument for Golang server

Abierto
#1,616 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
csharp
Área
networking

Línea de trabajo

Comienza con los stack frames de SftpFileStream.ReadAsync y la pila de llamadas de SftpSession.RequestRead, utilizando el comportamiento reportado de 2024.1.0 y el ejemplo de ReadAsync proporcionado como reproducción. Compara la solicitud del cliente con el trace del servidor SFTP de Golang que muestra una desreferenciación de puntero nil; el trabajo estará terminado cuando se identifique si la incompatibilidad está en SSH.NET o en el servidor y se documente una causa raíz reproducible.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I am from the Azure Logic apps team. One of our users have a custom SFTP server implemented in Golang and when we try to read a file we get the following error:

Renci.SshNet.Common.SshException: invalid argument
   at Renci.SshNet.Sftp.SftpSession.RequestRead(Byte[] handle, UInt64 offset, UInt32 length)
   at Renci.SshNet.Sftp.SftpFileStream.Read(Byte[] buffer, Int32 offset, Int32 count)

Our code looks like this. We are using 2024.1.0 version

 using (var sftpClient = new SftpClient(host, port, username, password))
 {
     sftpClient.Connect();

     if (sftpClient.IsConnected)
     {
        var fileMetadata = sftpClient.GetAttributes(filePath);
        var buffer = new byte[fileMetadata.Size];
        using (var fileStream = sftpClient.Open(path: filePath, mode: FileMode.Open, access: FileAccess.Read))
       {
            await fileStream.ReadAsync(buffer, 0, buffer.Length);
       }
     }
     else
     {
         Console.WriteLine("Failed to connect to the SFTP server.");
     }

     // Disconnect
     sftpClient.Disconnect();
 }

On checking the server traces we see this error there runtime error: invalid memory address or nil pointer dereference.

Any idea what could be causing this?

Lenguaje dominante
C#
Estrellas
4.4k
Forks
993
Merge medio
9 d 21 h
PR fusionados (30 d)
1

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sshnet/SSH.NET

Todos los issues de sshnet/SSH.NET

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.