Messages in this thread | | | Date | Wed, 28 Dec 2011 08:06:55 -0800 | From | Tejun Heo <> | Subject | Re: [patch 1/4] Add routine for generating an ID for kernel pointer |
| |
Hello, Cyrill.
Just my 2 cents.
On Fri, Dec 23, 2011 at 04:47:42PM +0400, Cyrill Gorcunov wrote: > +unsigned long gen_obj_id(void *ptr, int type) > +{ > + if (!capable(CAP_SYS_ADMIN) || !ptr) > + return 0; > + > + BUG_ON(type >= GEN_OBJ_ID_TYPES); > + > + /* > + * Note the simple XOR is used here not in a sake > + * of security by any means, but rather to break > + * an "impression" that such IDs means something > + * other than a number which can be used for comparison > + * with another number generated by this helper only. > + */ > + return ((unsigned long)ptr) ^ gen_obj_cookie[type]; > +}
To me, XOR & CAP_SYS_ADMIN combination doesn't make much sense. With CAP_SYS_ADMIN, there's no reason for XOR - we can just export pointers. If we plan on removing CAP_SYS_ADMIN restriction down the road, XOR doesn't help much. It's too weak. The XOR is unnecessary with CAP_SYS_ADMIN and useless without it. It seems pointless to me. If we're going down this route, I think doing cryptographically safe hash would be much better.
Thanks.
-- tejun
| |