{"action":"opened","issue":{"url":"https://api.github.com/repos/andrewarrow/paradise_ftp/issues/8","repository_url":"https://api.github.com/repos/andrewarrow/paradise_ftp","labels_url":"https://api.github.com/repos/andrewarrow/paradise_ftp/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/andrewarrow/paradise_ftp/issues/8/comments","events_url":"https://api.github.com/repos/andrewarrow/paradise_ftp/issues/8/events","html_url":"https://github.com/andrewarrow/paradise_ftp/issues/8","id":172785612,"number":8,"title":"Crash when telnet + LIST (dos vulnerability)","user":{"login":"Kleissner","id":13511064,"avatar_url":"https://avatars.githubusercontent.com/u/13511064?v=3","gravatar_id":"","url":"https://api.github.com/users/Kleissner","html_url":"https://github.com/Kleissner","followers_url":"https://api.github.com/users/Kleissner/followers","following_url":"https://api.github.com/users/Kleissner/following{/other_user}","gists_url":"https://api.github.com/users/Kleissner/gists{/gist_id}","starred_url":"https://api.github.com/users/Kleissner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kleissner/subscriptions","organizations_url":"https://api.github.com/users/Kleissner/orgs","repos_url":"https://api.github.com/users/Kleissner/repos","events_url":"https://api.github.com/users/Kleissner/events{/privacy}","received_events_url":"https://api.github.com/users/Kleissner/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-08-23T19:29:11Z","updated_at":"2016-08-23T19:29:11Z","closed_at":null,"body":"When connecting via telnet to the FTP and just typing \"LIST\" the FTP code will crash (panic).\r\n\r\nTo fix it add checks here:\r\n\r\n```\r\n1. In server.go\r\nfunc (p *Paradise) lastPassive() *Passive {\r\n\tpassive := p.passives[p.lastPassCid]\r\n\tif passive == nil {\r\n\t\treturn nil\r\n\t}\r\n\r\n2. uploader.go\r\nfunc (p *Paradise) HandleStore() {\r\n\tpassive := p.lastPassive()\r\n\tif passive == nil {\r\n\t\treturn\r\n\t}\r\n\r\n3. directory.go\r\nfunc (p *Paradise) HandleList() {\r\n\tpassive := p.lastPassive()\r\n\tif passive == nil {\r\n\t\treturn\r\n\t}\r\n\r\n```"}}
{"actor":{"display_login":"Kleissner"}}