>> From: Fushuai Wang <[email protected]> >> >> Many places call copy_from_user() to copy a buffer from user space, >> and then manually add a NULL terminator to the destination buffer, >> e.g.: >> >> if (copy_from_user(dest, src, len)) >> return -EFAULT; >> dest[len] = '\0'; >> >> This is repetitive and error-prone. Add a copy_from_user_nul() helper to >> simplify such patterns. It copied n bytes from user space to kernel space, >> and NUL-terminates the destination buffer. >> >> Signed-off-by: Fushuai Wang <[email protected]> > > Hmm, this function is very very similar to strncpy_from_user(). Should > they be using that instead? > > Alice
The strncpy_from_user() is for NUL-terminated strings and stops at the first NUL in userspace. But copy_from_user_nul() always copies a fixed length and adds a NUL at the end in kernel space, even if userspace data doesn???t contain a NUL. So I think they are for different cases and can???t replace each other. --- Regards, WANG
