Merge pull request #44 from digineo/fix_time_parsing
Do not crash on invalid lines
This commit is contained in:
		
						commit
						8b4b15b841
					
				| @ -3,9 +3,11 @@ go: | ||||
| - 1.5.1 | ||||
| before_install: | ||||
| - sudo mkdir --mode 0777 -p /var/ftp/incoming | ||||
| - sudo apt-get update -qq | ||||
| - sudo apt-get install -qq vsftpd | ||||
| - sudo cp $TRAVIS_BUILD_DIR/.vsftpd.conf /etc/vsftpd.conf | ||||
| - sudo service vsftpd restart | ||||
| - sudo sysctl net.ipv6.conf.lo.disable_ipv6=0 | ||||
| - go get github.com/axw/gocov/gocov | ||||
| - go get github.com/mattn/goveralls | ||||
| script: | ||||
|  | ||||
							
								
								
									
										6
									
								
								ftp.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								ftp.go
									
									
									
									
									
								
							| @ -347,6 +347,10 @@ func parseLsListLine(line string) (*Entry, error) { | ||||
| 		return e, nil | ||||
| 	} | ||||
| 
 | ||||
| 	if len(fields) < 8 { | ||||
| 		return nil, errUnsupportedListLine | ||||
| 	} | ||||
| 
 | ||||
| 	if fields[1] == "0" { | ||||
| 		e := &Entry{ | ||||
| 			Type: EntryTypeFile, | ||||
| @ -403,12 +407,14 @@ func parseDirListLine(line string) (*Entry, error) { | ||||
| 
 | ||||
| 	// Try various time formats that DIR might use, and stop when one works. | ||||
| 	for _, format := range dirTimeFormats { | ||||
| 		if len(line) > len(format) { | ||||
| 			e.Time, err = time.Parse(format, line[:len(format)]) | ||||
| 			if err == nil { | ||||
| 				line = line[len(format):] | ||||
| 				break | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	if err != nil { | ||||
| 		// None of the time formats worked. | ||||
| 		return nil, errUnsupportedListLine | ||||
|  | ||||
| @ -58,6 +58,8 @@ var listTestsFail = []unsupportedLine{ | ||||
| 	{"drwxr-xr-x    3 110      1002            3 Dec 02  209 pub", "Invalid year format in time string"}, | ||||
| 	{"modify=20150806235817;invalid;UNIX.owner=0; movies", "Unsupported LIST line"}, | ||||
| 	{"Zrwxrwxrwx   1 root     other          7 Jan 25 00:17 bin -> usr/bin", "Unknown entry type"}, | ||||
| 	{"total 1", "Unsupported LIST line"}, | ||||
| 	{"", "Unsupported LIST line"}, | ||||
| } | ||||
| 
 | ||||
| func TestParseValidListLine(t *testing.T) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user