[$] unsafe_put_user() turns out to be unsafe
When a veteran kernel developer introduces a severe security hole into thekernel, it can be instructive to look at how the vulnerability came about.Among other things, it can point the finger at an API that lends itselftoward the creation of such problems. And, as it turns out, the knowledgethat the API is dangerous at the outset and marking it as such may not beenough to prevent problems.