it strikes me as a bit odd that the declaration for the cross-space copy routine "strndup_user": extern char *strndup_user(const char __user *, long); is in include/linux/string.h. the string.h header file (except for that one exception) refers exclusively to *intra*-kernel string routines, just the ones you'd expect, while strndup_user() stands out as a bit of an exception, copying from userspace the way it does. one would think that its declaration would more properly belong in uaccess.h, no? thoughts? not a big deal, just a bit of a mystery. rday -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/