{"action":"created","issue":{"url":"https://api.github.com/repos/Zeke-OS/zeke/issues/141","repository_url":"https://api.github.com/repos/Zeke-OS/zeke","labels_url":"https://api.github.com/repos/Zeke-OS/zeke/issues/141/labels{/name}","comments_url":"https://api.github.com/repos/Zeke-OS/zeke/issues/141/comments","events_url":"https://api.github.com/repos/Zeke-OS/zeke/issues/141/events","html_url":"https://github.com/Zeke-OS/zeke/issues/141","id":233397931,"number":141,"title":"Simplified OOM handling","user":{"login":"OlliV","id":1401625,"avatar_url":"https://avatars1.githubusercontent.com/u/1401625?v=3","gravatar_id":"","url":"https://api.github.com/users/OlliV","html_url":"https://github.com/OlliV","followers_url":"https://api.github.com/users/OlliV/followers","following_url":"https://api.github.com/users/OlliV/following{/other_user}","gists_url":"https://api.github.com/users/OlliV/gists{/gist_id}","starred_url":"https://api.github.com/users/OlliV/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlliV/subscriptions","organizations_url":"https://api.github.com/users/OlliV/orgs","repos_url":"https://api.github.com/users/OlliV/repos","events_url":"https://api.github.com/users/OlliV/events{/privacy}","received_events_url":"https://api.github.com/users/OlliV/received_events","type":"User","site_admin":false},"labels":[{"id":22866373,"url":"https://api.github.com/repos/Zeke-OS/zeke/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-06-03T22:03:07Z","updated_at":"2017-06-03T22:37:39Z","closed_at":null,"body":"The issue is two fold, the usual case is that a syscall gets `ENOMEM` as a result of a call to a function declared in `kmalloc.h`, and the rarer case is that a kernel subsystem runs out of memory and can't continue proper operation. In the former case it would be a lot easier to just quit instead of trying to rollback and keep half-operational. These code paths are practically never tested properly.\r\n\r\nThe first case is quite often a result of the user passing an absurdly huge buffer size as an argument, in which case we should actually do input validation and not even try to allocate a kernel buffer for the data. Usually instead of allocating a kernel buffer `uio` buffer wrapping should be preferred, which reads and writes directly from and to the user space. The only problem is that it makes input validation impossible in case it's necessary, because another thready could alter the data while the other thread is executing the syscall code."},"comment":{"url":"https://api.github.com/repos/Zeke-OS/zeke/issues/comments/306005554","html_url":"https://github.com/Zeke-OS/zeke/issues/141#issuecomment-306005554","issue_url":"https://api.github.com/repos/Zeke-OS/zeke/issues/141","id":306005554,"user":{"login":"OlliV","id":1401625,"avatar_url":"https://avatars1.githubusercontent.com/u/1401625?v=3","gravatar_id":"","url":"https://api.github.com/users/OlliV","html_url":"https://github.com/OlliV","followers_url":"https://api.github.com/users/OlliV/followers","following_url":"https://api.github.com/users/OlliV/following{/other_user}","gists_url":"https://api.github.com/users/OlliV/gists{/gist_id}","starred_url":"https://api.github.com/users/OlliV/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlliV/subscriptions","organizations_url":"https://api.github.com/users/OlliV/orgs","repos_url":"https://api.github.com/users/OlliV/repos","events_url":"https://api.github.com/users/OlliV/events{/privacy}","received_events_url":"https://api.github.com/users/OlliV/received_events","type":"User","site_admin":false},"created_at":"2017-06-03T22:37:39Z","updated_at":"2017-06-03T22:37:39Z","body":"https://github.com/Zeke-OS/zeke/issues/142"}}
{"actor":{"display_login":"OlliV"}}