{"action":"closed","number":2410,"pull_request":{"url":"https://api.github.com/repos/python-pillow/Pillow/pulls/2410","id":106753601,"html_url":"https://github.com/python-pillow/Pillow/pull/2410","diff_url":"https://github.com/python-pillow/Pillow/pull/2410.diff","patch_url":"https://github.com/python-pillow/Pillow/pull/2410.patch","issue_url":"https://api.github.com/repos/python-pillow/Pillow/issues/2410","number":2410,"state":"closed","locked":false,"title":"Crop decompression","user":{"login":"wiredfool","id":19792,"avatar_url":"https://avatars3.githubusercontent.com/u/19792?v=3","gravatar_id":"","url":"https://api.github.com/users/wiredfool","html_url":"https://github.com/wiredfool","followers_url":"https://api.github.com/users/wiredfool/followers","following_url":"https://api.github.com/users/wiredfool/following{/other_user}","gists_url":"https://api.github.com/users/wiredfool/gists{/gist_id}","starred_url":"https://api.github.com/users/wiredfool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wiredfool/subscriptions","organizations_url":"https://api.github.com/users/wiredfool/orgs","repos_url":"https://api.github.com/users/wiredfool/repos","events_url":"https://api.github.com/users/wiredfool/events{/privacy}","received_events_url":"https://api.github.com/users/wiredfool/received_events","type":"User","site_admin":false},"body":"Fixes #2402 .\r\n\r\nChanges proposed in this pull request:\r\n\r\n * Add decompression bomb check for image.crop, since it can enlarge images.\r\n * Refactor out checks to _crop, so that we can apply them to any core image object.\r\n * Gif disposal is where the bug in #2402 was, it was requesting a 1GP dispose_extents.\r\n\r\nStill need to: \r\n~- [ ] Generate a gif with extra large extents~\r\n - [x] Consider making decompression bombs an error at some level, as now the gif from #2402 kicks out a warning, then dies. \r\n","created_at":"2017-02-17T15:26:15Z","updated_at":"2017-06-21T10:00:04Z","closed_at":"2017-06-21T10:00:04Z","merged_at":"2017-06-21T10:00:03Z","merge_commit_sha":"a4dafe78df5fa050131bddac0b2378d11ea8d9b8","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/python-pillow/Pillow/milestones/23","html_url":"https://github.com/python-pillow/Pillow/milestone/23","labels_url":"https://api.github.com/repos/python-pillow/Pillow/milestones/23/labels","id":2043826,"number":23,"title":"4.2.0","description":"","creator":{"login":"aclark4life","id":72164,"avatar_url":"https://avatars0.githubusercontent.com/u/72164?v=3","gravatar_id":"","url":"https://api.github.com/users/aclark4life","html_url":"https://github.com/aclark4life","followers_url":"https://api.github.com/users/aclark4life/followers","following_url":"https://api.github.com/users/aclark4life/following{/other_user}","gists_url":"https://api.github.com/users/aclark4life/gists{/gist_id}","starred_url":"https://api.github.com/users/aclark4life/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aclark4life/subscriptions","organizations_url":"https://api.github.com/users/aclark4life/orgs","repos_url":"https://api.github.com/users/aclark4life/repos","events_url":"https://api.github.com/users/aclark4life/events{/privacy}","received_events_url":"https://api.github.com/users/aclark4life/received_events","type":"User","site_admin":false},"open_issues":15,"closed_issues":4,"state":"open","created_at":"2016-10-03T11:16:30Z","updated_at":"2017-06-21T10:00:04Z","due_on":"2017-07-01T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/python-pillow/Pillow/pulls/2410/commits","review_comments_url":"https://api.github.com/repos/python-pillow/Pillow/pulls/2410/comments","review_comment_url":"https://api.github.com/repos/python-pillow/Pillow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/python-pillow/Pillow/issues/2410/comments","statuses_url":"https://api.github.com/repos/python-pillow/Pillow/statuses/fdc6e149fb706ea835c2cc4611f2262a73b91d0c","head":{"label":"wiredfool:crop_decompression","ref":"crop_decompression","sha":"fdc6e149fb706ea835c2cc4611f2262a73b91d0c","user":{"login":"wiredfool","id":19792,"avatar_url":"https://avatars3.githubusercontent.com/u/19792?v=3","gravatar_id":"","url":"https://api.github.com/users/wiredfool","html_url":"https://github.com/wiredfool","followers_url":"https://api.github.com/users/wiredfool/followers","following_url":"https://api.github.com/users/wiredfool/following{/other_user}","gists_url":"https://api.github.com/users/wiredfool/gists{/gist_id}","starred_url":"https://api.github.com/users/wiredfool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wiredfool/subscriptions","organizations_url":"https://api.github.com/users/wiredfool/orgs","repos_url":"https://api.github.com/users/wiredfool/repos","events_url":"https://api.github.com/users/wiredfool/events{/privacy}","received_events_url":"https://api.github.com/users/wiredfool/received_events","type":"User","site_admin":false},"repo":{"id":8664379,"name":"Pillow","full_name":"wiredfool/Pillow","owner":{"login":"wiredfool","id":19792,"avatar_url":"https://avatars3.githubusercontent.com/u/19792?v=3","gravatar_id":"","url":"https://api.github.com/users/wiredfool","html_url":"https://github.com/wiredfool","followers_url":"https://api.github.com/users/wiredfool/followers","following_url":"https://api.github.com/users/wiredfool/following{/other_user}","gists_url":"https://api.github.com/users/wiredfool/gists{/gist_id}","starred_url":"https://api.github.com/users/wiredfool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wiredfool/subscriptions","organizations_url":"https://api.github.com/users/wiredfool/orgs","repos_url":"https://api.github.com/users/wiredfool/repos","events_url":"https://api.github.com/users/wiredfool/events{/privacy}","received_events_url":"https://api.github.com/users/wiredfool/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wiredfool/Pillow","description":"Fork of the main repo at python-pillow/pillow. ","fork":true,"url":"https://api.github.com/repos/wiredfool/Pillow","forks_url":"https://api.github.com/repos/wiredfool/Pillow/forks","keys_url":"https://api.github.com/repos/wiredfool/Pillow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wiredfool/Pillow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wiredfool/Pillow/teams","hooks_url":"https://api.github.com/repos/wiredfool/Pillow/hooks","issue_events_url":"https://api.github.com/repos/wiredfool/Pillow/issues/events{/number}","events_url":"https://api.github.com/repos/wiredfool/Pillow/events","assignees_url":"https://api.github.com/repos/wiredfool/Pillow/assignees{/user}","branches_url":"https://api.github.com/repos/wiredfool/Pillow/branches{/branch}","tags_url":"https://api.github.com/repos/wiredfool/Pillow/tags","blobs_url":"https://api.github.com/repos/wiredfool/Pillow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wiredfool/Pillow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wiredfool/Pillow/git/refs{/sha}","trees_url":"https://api.github.com/repos/wiredfool/Pillow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wiredfool/Pillow/statuses/{sha}","languages_url":"https://api.github.com/repos/wiredfool/Pillow/languages","stargazers_url":"https://api.github.com/repos/wiredfool/Pillow/stargazers","contributors_url":"https://api.github.com/repos/wiredfool/Pillow/contributors","subscribers_url":"https://api.github.com/repos/wiredfool/Pillow/subscribers","subscription_url":"https://api.github.com/repos/wiredfool/Pillow/subscription","commits_url":"https://api.github.com/repos/wiredfool/Pillow/commits{/sha}","git_commits_url":"https://api.github.com/repos/wiredfool/Pillow/git/commits{/sha}","comments_url":"https://api.github.com/repos/wiredfool/Pillow/comments{/number}","issue_comment_url":"https://api.github.com/repos/wiredfool/Pillow/issues/comments{/number}","contents_url":"https://api.github.com/repos/wiredfool/Pillow/contents/{+path}","compare_url":"https://api.github.com/repos/wiredfool/Pillow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wiredfool/Pillow/merges","archive_url":"https://api.github.com/repos/wiredfool/Pillow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wiredfool/Pillow/downloads","issues_url":"https://api.github.com/repos/wiredfool/Pillow/issues{/number}","pulls_url":"https://api.github.com/repos/wiredfool/Pillow/pulls{/number}","milestones_url":"https://api.github.com/repos/wiredfool/Pillow/milestones{/number}","notifications_url":"https://api.github.com/repos/wiredfool/Pillow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wiredfool/Pillow/labels{/name}","releases_url":"https://api.github.com/repos/wiredfool/Pillow/releases{/id}","deployments_url":"https://api.github.com/repos/wiredfool/Pillow/deployments","created_at":"2013-03-09T03:12:08Z","updated_at":"2016-12-13T17:31:21Z","pushed_at":"2017-06-21T09:55:18Z","git_url":"git://github.com/wiredfool/Pillow.git","ssh_url":"git@github.com:wiredfool/Pillow.git","clone_url":"https://github.com/wiredfool/Pillow.git","svn_url":"https://github.com/wiredfool/Pillow","homepage":"https://github.com/python-pillow/Pillow","size":23772,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"python-pillow:master","ref":"master","sha":"130c9c52a4cd821ef099bfe30d46a9dd24a11aee","user":{"login":"python-pillow","id":2036701,"avatar_url":"https://avatars1.githubusercontent.com/u/2036701?v=3","gravatar_id":"","url":"https://api.github.com/users/python-pillow","html_url":"https://github.com/python-pillow","followers_url":"https://api.github.com/users/python-pillow/followers","following_url":"https://api.github.com/users/python-pillow/following{/other_user}","gists_url":"https://api.github.com/users/python-pillow/gists{/gist_id}","starred_url":"https://api.github.com/users/python-pillow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/python-pillow/subscriptions","organizations_url":"https://api.github.com/users/python-pillow/orgs","repos_url":"https://api.github.com/users/python-pillow/repos","events_url":"https://api.github.com/users/python-pillow/events{/privacy}","received_events_url":"https://api.github.com/users/python-pillow/received_events","type":"Organization","site_admin":false},"repo":{"id":5171600,"name":"Pillow","full_name":"python-pillow/Pillow","owner":{"login":"python-pillow","id":2036701,"avatar_url":"https://avatars1.githubusercontent.com/u/2036701?v=3","gravatar_id":"","url":"https://api.github.com/users/python-pillow","html_url":"https://github.com/python-pillow","followers_url":"https://api.github.com/users/python-pillow/followers","following_url":"https://api.github.com/users/python-pillow/following{/other_user}","gists_url":"https://api.github.com/users/python-pillow/gists{/gist_id}","starred_url":"https://api.github.com/users/python-pillow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/python-pillow/subscriptions","organizations_url":"https://api.github.com/users/python-pillow/orgs","repos_url":"https://api.github.com/users/python-pillow/repos","events_url":"https://api.github.com/users/python-pillow/events{/privacy}","received_events_url":"https://api.github.com/users/python-pillow/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/python-pillow/Pillow","description":"The friendly PIL fork (Python Imaging Library)","fork":false,"url":"https://api.github.com/repos/python-pillow/Pillow","forks_url":"https://api.github.com/repos/python-pillow/Pillow/forks","keys_url":"https://api.github.com/repos/python-pillow/Pillow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/python-pillow/Pillow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/python-pillow/Pillow/teams","hooks_url":"https://api.github.com/repos/python-pillow/Pillow/hooks","issue_events_url":"https://api.github.com/repos/python-pillow/Pillow/issues/events{/number}","events_url":"https://api.github.com/repos/python-pillow/Pillow/events","assignees_url":"https://api.github.com/repos/python-pillow/Pillow/assignees{/user}","branches_url":"https://api.github.com/repos/python-pillow/Pillow/branches{/branch}","tags_url":"https://api.github.com/repos/python-pillow/Pillow/tags","blobs_url":"https://api.github.com/repos/python-pillow/Pillow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/python-pillow/Pillow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/python-pillow/Pillow/git/refs{/sha}","trees_url":"https://api.github.com/repos/python-pillow/Pillow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/python-pillow/Pillow/statuses/{sha}","languages_url":"https://api.github.com/repos/python-pillow/Pillow/languages","stargazers_url":"https://api.github.com/repos/python-pillow/Pillow/stargazers","contributors_url":"https://api.github.com/repos/python-pillow/Pillow/contributors","subscribers_url":"https://api.github.com/repos/python-pillow/Pillow/subscribers","subscription_url":"https://api.github.com/repos/python-pillow/Pillow/subscription","commits_url":"https://api.github.com/repos/python-pillow/Pillow/commits{/sha}","git_commits_url":"https://api.github.com/repos/python-pillow/Pillow/git/commits{/sha}","comments_url":"https://api.github.com/repos/python-pillow/Pillow/comments{/number}","issue_comment_url":"https://api.github.com/repos/python-pillow/Pillow/issues/comments{/number}","contents_url":"https://api.github.com/repos/python-pillow/Pillow/contents/{+path}","compare_url":"https://api.github.com/repos/python-pillow/Pillow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/python-pillow/Pillow/merges","archive_url":"https://api.github.com/repos/python-pillow/Pillow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/python-pillow/Pillow/downloads","issues_url":"https://api.github.com/repos/python-pillow/Pillow/issues{/number}","pulls_url":"https://api.github.com/repos/python-pillow/Pillow/pulls{/number}","milestones_url":"https://api.github.com/repos/python-pillow/Pillow/milestones{/number}","notifications_url":"https://api.github.com/repos/python-pillow/Pillow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/python-pillow/Pillow/labels{/name}","releases_url":"https://api.github.com/repos/python-pillow/Pillow/releases{/id}","deployments_url":"https://api.github.com/repos/python-pillow/Pillow/deployments","created_at":"2012-07-24T21:38:39Z","updated_at":"2017-06-21T08:07:43Z","pushed_at":"2017-06-21T10:00:03Z","git_url":"git://github.com/python-pillow/Pillow.git","ssh_url":"git@github.com:python-pillow/Pillow.git","clone_url":"https://github.com/python-pillow/Pillow.git","svn_url":"https://github.com/python-pillow/Pillow","homepage":"https://python-pillow.org","size":23364,"stargazers_count":3665,"watchers_count":3665,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":791,"mirror_url":null,"open_issues_count":183,"forks":791,"open_issues":183,"watchers":3665,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/python-pillow/Pillow/pulls/2410"},"html":{"href":"https://github.com/python-pillow/Pillow/pull/2410"},"issue":{"href":"https://api.github.com/repos/python-pillow/Pillow/issues/2410"},"comments":{"href":"https://api.github.com/repos/python-pillow/Pillow/issues/2410/comments"},"review_comments":{"href":"https://api.github.com/repos/python-pillow/Pillow/pulls/2410/comments"},"review_comment":{"href":"https://api.github.com/repos/python-pillow/Pillow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/python-pillow/Pillow/pulls/2410/commits"},"statuses":{"href":"https://api.github.com/repos/python-pillow/Pillow/statuses/fdc6e149fb706ea835c2cc4611f2262a73b91d0c"}},"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"wiredfool","id":19792,"avatar_url":"https://avatars3.githubusercontent.com/u/19792?v=3","gravatar_id":"","url":"https://api.github.com/users/wiredfool","html_url":"https://github.com/wiredfool","followers_url":"https://api.github.com/users/wiredfool/followers","following_url":"https://api.github.com/users/wiredfool/following{/other_user}","gists_url":"https://api.github.com/users/wiredfool/gists{/gist_id}","starred_url":"https://api.github.com/users/wiredfool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wiredfool/subscriptions","organizations_url":"https://api.github.com/users/wiredfool/orgs","repos_url":"https://api.github.com/users/wiredfool/repos","events_url":"https://api.github.com/users/wiredfool/events{/privacy}","received_events_url":"https://api.github.com/users/wiredfool/received_events","type":"User","site_admin":false},"comments":2,"review_comments":0,"maintainer_can_modify":false,"commits":3,"additions":38,"deletions":10,"changed_files":3}}
{"actor":{"display_login":"wiredfool"}}