Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EOF when parsing response from Explicit TLS connection #323

Open
michal239 opened this issue Mar 29, 2023 · 1 comment
Open

EOF when parsing response from Explicit TLS connection #323

michal239 opened this issue Mar 29, 2023 · 1 comment
Labels
defect The code does not work as intended

Comments

@michal239
Copy link

Describe the bug

getting io.EOF error after running list/stor/retr method
the example describes running the mlsd command, but the same issue happens when i try to upload or download a file
To Reproduce

	cl, err := ftp.Dial(
		host,
		ftp.DialWithExplicitTLS(&tls.Config{InsecureSkipVerify: true}),
		ftp.DialWithDebugOutput(os.Stdout),
	)
	if err != nil {
		log.Error(err)
	}
	
	err = cl.Login(user, password)
	if err != nil {
		log.Error(err)
	}
	_, err = cl.List(".")
	if err != nil {
		log.Error(err) // EOF ERROR HERE
	}
	
	cl.Quit()

Expected behavior
no error

FTP server
pure ftpd, latest version

Debug output
library debug log:

220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 5 allowed.
220-Local time is now 14:32. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
AUTH TLS
234 AUTH TLS OK.
USER michal
331 User michal OK. Password required
PASS 1234
230 OK. Current directory is /
FEAT
211-Extensions supported:
 EPRT
 IDLE
 MDTM
 SIZE
 MFMT
 REST STREAM
 MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
 MLSD
 AUTH TLS
 PBSZ
 PROT
 UTF8
 TVFS
 ESTA
 PASV
 EPSV
 SPSV
211 End.
TYPE I
200 TYPE is now 8-bit binary
OPTS UTF8 ON
200 OK, UTF-8 enabled
PBSZ 0
200 PBSZ=0
PROT P
200 Data protection level set to "private"
EPSV
229 Extended Passive mode OK (|||30000|)
MLSD .
150 Accepted data connection
ERRO[1859] can't list files: 1 error occurred:
	* EOF
  
QUIT

server debug log:

ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [INFO] New connection from 172.22.0.1
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 220-You are user number 1 of 5 allowed.
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 220-Local time is now 14:32. Server port: 21.
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 220-This is a private system - No anonymous login
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 220-IPv6 connections are also welcome on this server.
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 220 You will be disconnected after 15 minutes of inactivity.
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [auth] [TLS]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 234 AUTH TLS OK.
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [INFO] TLS: Enabled TLSv1.3 with TLS_AES_256_GCM_SHA384, 256 secret bits cipher
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [user] [michal]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 331 User michal OK. Password required
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [pass] [<*>]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [INFO] michal is now logged in
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 230 OK. Current directory is /
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [feat] []
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 211-Extensions supported:#015#012 EPRT#015#012 IDLE#015#012 MDTM#015#012 SIZE#015#012 MFMT#015#012 REST STREAM#015#012 MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;#015#012 MLSD#015#012 AUTH TLS#015#012 PBSZ#015#012 PROT#015#012 UTF8#015#012 TVFS#015#012 ESTA#015#012 PASV#015#012 EPSV#015#012 SPSV#015
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 211 End.
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [type] [I]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 200 TYPE is now 8-bit binary
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [opts] [UTF8 ON]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 200 OK, UTF-8 enabled
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [pbsz] [0]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 200 PBSZ=0
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [prot] [P]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 200 Data protection level set to "private"
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [epsv] []
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 229 Extended Passive mode OK (|||30000|)
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] Command [mlsd] [.]
ftps  | Mar 29 14:32:07 e8497fae7061 pure-ftpd: ([email protected]) [DEBUG] 150 Accepted data connection

@michal239 michal239 added the defect The code does not work as intended label Mar 29, 2023
@michal239
Copy link
Author

offtop: PASS 1234 shouldn't that be masked?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
defect The code does not work as intended
Projects
None yet
Development

No branches or pull requests

1 participant