{"action":"closed","issue":{"url":"https://api.github.com/repos/ethereum/solidity/issues/3306","repository_url":"https://api.github.com/repos/ethereum/solidity","labels_url":"https://api.github.com/repos/ethereum/solidity/issues/3306/labels{/name}","comments_url":"https://api.github.com/repos/ethereum/solidity/issues/3306/comments","events_url":"https://api.github.com/repos/ethereum/solidity/issues/3306/events","html_url":"https://github.com/ethereum/solidity/issues/3306","id":281296526,"number":3306,"title":"Audit - SOL-001: O(n​ 2​ )​ ​ compiler​ ​ output​ ​ blow-up​ ​ by​ ​ forced​ ​ warnings/errors","user":{"login":"chriseth","id":9073706,"avatar_url":"https://avatars2.githubusercontent.com/u/9073706?v=4","gravatar_id":"","url":"https://api.github.com/users/chriseth","html_url":"https://github.com/chriseth","followers_url":"https://api.github.com/users/chriseth/followers","following_url":"https://api.github.com/users/chriseth/following{/other_user}","gists_url":"https://api.github.com/users/chriseth/gists{/gist_id}","starred_url":"https://api.github.com/users/chriseth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chriseth/subscriptions","organizations_url":"https://api.github.com/users/chriseth/orgs","repos_url":"https://api.github.com/users/chriseth/repos","events_url":"https://api.github.com/users/chriseth/events{/privacy}","received_events_url":"https://api.github.com/users/chriseth/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2017-12-12T08:25:39Z","updated_at":"2017-12-12T08:54:17Z","closed_at":"2017-12-12T08:54:17Z","author_association":"CONTRIBUTOR","body":"The​ ​ compiler​ ​ does​ ​ not​ ​ limit​ ​ the​ ​ number​ ​ of​ ​ errors​ ​ or​ ​ warnings​ ​ reported​ ​ (characters​ ​ sent\r\nto​ ​ stderr).​ ​ Generally​ ​ there​ ​ is​ ​ no​ ​ benefit​ ​ to​ ​ the​ ​ developer​ ​ to​ ​ receive​ ​ more​ ​ than​ ​ 1000\r\nerrors/warnings​ ​ at​ ​ once.\r\nAn​ ​ associated​ ​ problem​ ​ is​ ​ that​ ​ the​ ​ compiler​ ​ prints​ ​ the​ ​ full​ ​ line​ ​ for​ ​ each​ ​ error​ ​ message.\r\nTherefore,​ ​ if​ ​ a ​ ​ single​ ​ line​ ​ contains​ ​ multiple​ ​ errors,​ ​ the​ ​ line​ ​ is​ ​ printed​ ​ once​ ​ every​ ​ error\r\nfound.​ ​ ​ A ​ ​ single​ ​ line​ ​ of​ ​ char​ ​ size​ ​ n ​ ​ can​ ​ create​ ​ O(n​ 2​ )​ ​ characters​ ​ of​ ​ error​ ​ output.\r\nThis​ ​ error​ ​ might​ ​ thwart​ ​ the​ ​ possibility​ ​ of​ ​ automated​ ​ verification​ ​ and​ ​ matching​ ​ of​ ​ source\r\ncode​ ​ with​ ​ bytecode,​ ​ due​ ​ to​ ​ resource​ ​ exhaustion​ ​ by​ ​ warning​ ​ messages​ ​ in​ ​ the​ ​ verification\r\nserver.\r\nThe​ ​ consequence​ ​ is​ ​ that​ ​ a ​ ​ very​ ​ small​ ​ contract​ ​ code​ ​ when​ ​ compiled​ ​ may​ ​ create​ ​ a ​ ​ huge\r\nerror​ ​ file.​ ​ For​ ​ example,​ ​ a ​ ​ 16​ ​ Kbyte​ ​ source​ ​ code​ ​ can​ ​ force​ ​ the​ ​ compiler​ ​ to​ ​ emit​ ​ 130\r\nMbytes​ ​ of​ ​ errors,​ ​ and​ ​ compilation​ ​ takes​ ​ 5 ​ ​ minutes.​ ​"}}
{"actor":{"display_login":"chriseth"}}