diff options
author | Chen Gang <gang.chen@asianux.com> | 2013-05-29 18:51:28 +0800 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2013-07-19 13:54:14 -0700 |
commit | 00ee03092a6e4b1d0ddc6b861ebb9ed8d13cc29b (patch) | |
tree | 1819f32f291cb321a3123d5c6b8bad44b819f4e9 /arch/alpha/kernel/smp.c | |
parent | 29b7a47a9df2534ed62c4783dcf76153ceb76a73 (diff) | |
download | linux-00ee03092a6e4b1d0ddc6b861ebb9ed8d13cc29b.tar.gz linux-00ee03092a6e4b1d0ddc6b861ebb9ed8d13cc29b.tar.bz2 linux-00ee03092a6e4b1d0ddc6b861ebb9ed8d13cc29b.zip |
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>
Diffstat (limited to 'arch/alpha/kernel/smp.c')
-rw-r--r-- | arch/alpha/kernel/smp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index 53b18a620e1c..4bc3c414d075 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 = ' '; |