History

kdb: use memmove instead of overlapping memcpy

gcc discovered that the memcpy() arguments in kdbnearsym() overlap, so we should really use memmove(), which is defined to handle that correctly: In function 'memcpy', inlined from 'kdbnearsym' at /git/arm-soc/kernel/debug/kdb/kdb_support.c:132:4: /git/arm-soc/include/linux/string.h:353:9: error: '__builtin_memcpy' accessing 792 bytes at offsets 0 and 8 overlaps 784 bytes at offset 8 [-Werror=restrict] return __builtin_memcpy(p, q, size);

Arnd Bergmann committed 8 years ago

Commit 2cf2f0d1 parent 40b90ef1 file · +2 −2Browse files

Showing the changes to kernel/debug (1 of 1 file). Show all

Unified · Split

kernel/debug/kdb/kdb_support.c+2−2
@@ -129,13 +129,13 @@ int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab) · 128 unmodified lines
129129 }
130130 if (i >= ARRAY_SIZE(kdb_name_table)) {
131131 debug_kfree(kdb_name_table[0]);
132− memcpy(kdb_name_table, kdb_name_table+1,
132+ memmove(kdb_name_table, kdb_name_table+1,
133133 sizeof(kdb_name_table[0]) *
134134 (ARRAY_SIZE(kdb_name_table)-1));
135135 } else {
136136 debug_kfree(knt1);
137137 knt1 = kdb_name_table[i];
138− memcpy(kdb_name_table+i, kdb_name_table+i+1,
138+ memmove(kdb_name_table+i, kdb_name_table+i+1,
139139 sizeof(kdb_name_table[0]) *
140140 (ARRAY_SIZE(kdb_name_table)-i-1));
141141 }