Convert usage of strncpy()/strncat() to memcpy()/strlcat() for simpler and safer string manipulation.
Reported-by: David Laight <david.lai...@aculab.com> Signed-off-by: Naveen N. Rao <naveen.n....@linux.vnet.ibm.com> --- arch/powerpc/kernel/kprobes.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index 97b5eed1f76d..d743bacefa8c 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c @@ -69,24 +69,23 @@ kprobe_opcode_t *kprobe_lookup_name(const char *name, unsigned int offset) modsym++; if (*modsym != '\0' && *modsym != '.') { /* Convert to <module:.symbol> */ - strncpy(dot_name, name, modsym - name); + memcpy(dot_name, name, modsym - name); dot_name[modsym - name] = '.'; dot_name[modsym - name + 1] = '\0'; - strncat(dot_name, modsym, - sizeof(dot_name) - (modsym - name) - 2); + strlcat(dot_name, modsym, sizeof(dot_name)); dot_appended = true; } else { dot_name[0] = '\0'; - strncat(dot_name, name, sizeof(dot_name) - 1); + strlcat(dot_name, name, sizeof(dot_name)); } } else if (name[0] != '.') { dot_name[0] = '.'; dot_name[1] = '\0'; - strncat(dot_name, name, KSYM_NAME_LEN - 2); + strlcat(dot_name, name, sizeof(dot_name)); dot_appended = true; } else { dot_name[0] = '\0'; - strncat(dot_name, name, KSYM_NAME_LEN - 1); + strlcat(dot_name, name, sizeof(dot_name)); } addr = (kprobe_opcode_t *)kallsyms_lookup_name(dot_name); if (!addr && dot_appended) { -- 2.12.1