aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Gang <gang.chen@asianux.com>2013-05-29 18:51:28 +0800
committerMatt Turner <mattst88@gmail.com>2013-07-19 13:54:14 -0700
commit00ee03092a6e4b1d0ddc6b861ebb9ed8d13cc29b (patch)
tree1819f32f291cb321a3123d5c6b8bad44b819f4e9
parent29b7a47a9df2534ed62c4783dcf76153ceb76a73 (diff)
alpha: kernel: using memcpy() instead of strcpy()
When sending message in send_secondary_console_msg(), the length is not include the NUL byte, and also not copy NUL to 'ipc_buffer'. When receive message in recv_secondary_console_msg(), the 'cnt' also excludes NUL. So when get string from ipc_buffer, it may not be NUL terminated. Then use memcpy() instead of strcpy(), and set last byte NUL. Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Chen Gang <gang.chen@asianux.com>
-rw-r--r--arch/alpha/kernel/smp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c
index 53b18a620e1..4bc3c414d07 100644
--- a/arch/alpha/kernel/smp.c
+++ b/arch/alpha/kernel/smp.c
@@ -266,7 +266,8 @@ recv_secondary_console_msg(void)
else {
cp1 = (char *) &cpu->ipc_buffer[11];
cp2 = buf;
- strcpy(cp2, cp1);
+ memcpy(cp2, cp1, cnt);
+ cp2[cnt] = '\0';
while ((cp2 = strchr(cp2, '\r')) != 0) {
*cp2 = ' ';