lib/env.c: Replace strncpy(3) call by stpcpy(mempcpy(), "")
We were using strncpy(3), which is designed to copy from a string into a (null-padded) fixed-size character array. However, we were doing the opposite: copying from a known-size array (which was a prefix of a string), into a string. That's why we had to manually zero the buffer afterwards. Use instead mempcpy(3) to copy the non-null bytes, and then terminate with a null byte with stpcpy(..., ""). Cc: "Serge E. Hallyn" <serge@hallyn.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
committed by
Serge Hallyn
parent
dbb37b1b31
commit
72060a2b2b
@@ -192,8 +192,7 @@ void set_env (int argc, char *const *argv)
|
||||
}
|
||||
|
||||
if (NULL != *p) {
|
||||
strncpy (variable, *argv, (size_t)(cp - *argv));
|
||||
variable[cp - *argv] = '\0';
|
||||
stpcpy(mempcpy(variable, *argv, (size_t)(cp - *argv)), "");
|
||||
printf (_("You may not change $%s\n"),
|
||||
variable);
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user