diff options
Diffstat (limited to 'kernel/kallsyms.c')
| -rw-r--r-- | kernel/kallsyms.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index fed54418626c..474219a41929 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c | |||
| @@ -152,7 +152,7 @@ static unsigned int get_symbol_offset(unsigned long pos) | |||
| 152 | /* Lookup the address for this symbol. Returns 0 if not found. */ | 152 | /* Lookup the address for this symbol. Returns 0 if not found. */ |
| 153 | unsigned long kallsyms_lookup_name(const char *name) | 153 | unsigned long kallsyms_lookup_name(const char *name) |
| 154 | { | 154 | { |
| 155 | char namebuf[KSYM_NAME_LEN+1]; | 155 | char namebuf[KSYM_NAME_LEN]; |
| 156 | unsigned long i; | 156 | unsigned long i; |
| 157 | unsigned int off; | 157 | unsigned int off; |
| 158 | 158 | ||
| @@ -248,7 +248,7 @@ const char *kallsyms_lookup(unsigned long addr, | |||
| 248 | { | 248 | { |
| 249 | const char *msym; | 249 | const char *msym; |
| 250 | 250 | ||
| 251 | namebuf[KSYM_NAME_LEN] = 0; | 251 | namebuf[KSYM_NAME_LEN - 1] = 0; |
| 252 | namebuf[0] = 0; | 252 | namebuf[0] = 0; |
| 253 | 253 | ||
| 254 | if (is_ksym_addr(addr)) { | 254 | if (is_ksym_addr(addr)) { |
| @@ -265,7 +265,7 @@ const char *kallsyms_lookup(unsigned long addr, | |||
| 265 | /* see if it's in a module */ | 265 | /* see if it's in a module */ |
| 266 | msym = module_address_lookup(addr, symbolsize, offset, modname); | 266 | msym = module_address_lookup(addr, symbolsize, offset, modname); |
| 267 | if (msym) | 267 | if (msym) |
| 268 | return strncpy(namebuf, msym, KSYM_NAME_LEN); | 268 | return strncpy(namebuf, msym, KSYM_NAME_LEN - 1); |
| 269 | 269 | ||
| 270 | return NULL; | 270 | return NULL; |
| 271 | } | 271 | } |
| @@ -273,7 +273,7 @@ const char *kallsyms_lookup(unsigned long addr, | |||
| 273 | int lookup_symbol_name(unsigned long addr, char *symname) | 273 | int lookup_symbol_name(unsigned long addr, char *symname) |
| 274 | { | 274 | { |
| 275 | symname[0] = '\0'; | 275 | symname[0] = '\0'; |
| 276 | symname[KSYM_NAME_LEN] = '\0'; | 276 | symname[KSYM_NAME_LEN - 1] = '\0'; |
| 277 | 277 | ||
| 278 | if (is_ksym_addr(addr)) { | 278 | if (is_ksym_addr(addr)) { |
| 279 | unsigned long pos; | 279 | unsigned long pos; |
| @@ -291,7 +291,7 @@ int lookup_symbol_attrs(unsigned long addr, unsigned long *size, | |||
| 291 | unsigned long *offset, char *modname, char *name) | 291 | unsigned long *offset, char *modname, char *name) |
| 292 | { | 292 | { |
| 293 | name[0] = '\0'; | 293 | name[0] = '\0'; |
| 294 | name[KSYM_NAME_LEN] = '\0'; | 294 | name[KSYM_NAME_LEN - 1] = '\0'; |
| 295 | 295 | ||
| 296 | if (is_ksym_addr(addr)) { | 296 | if (is_ksym_addr(addr)) { |
| 297 | unsigned long pos; | 297 | unsigned long pos; |
| @@ -312,18 +312,17 @@ int sprint_symbol(char *buffer, unsigned long address) | |||
| 312 | char *modname; | 312 | char *modname; |
| 313 | const char *name; | 313 | const char *name; |
| 314 | unsigned long offset, size; | 314 | unsigned long offset, size; |
| 315 | char namebuf[KSYM_NAME_LEN+1]; | 315 | char namebuf[KSYM_NAME_LEN]; |
| 316 | 316 | ||
| 317 | name = kallsyms_lookup(address, &size, &offset, &modname, namebuf); | 317 | name = kallsyms_lookup(address, &size, &offset, &modname, namebuf); |
| 318 | if (!name) | 318 | if (!name) |
| 319 | return sprintf(buffer, "0x%lx", address); | 319 | return sprintf(buffer, "0x%lx", address); |
| 320 | else { | 320 | |
| 321 | if (modname) | 321 | if (modname) |
| 322 | return sprintf(buffer, "%s+%#lx/%#lx [%s]", name, offset, | 322 | return sprintf(buffer, "%s+%#lx/%#lx [%s]", name, offset, |
| 323 | size, modname); | 323 | size, modname); |
| 324 | else | 324 | else |
| 325 | return sprintf(buffer, "%s+%#lx/%#lx", name, offset, size); | 325 | return sprintf(buffer, "%s+%#lx/%#lx", name, offset, size); |
| 326 | } | ||
| 327 | } | 326 | } |
| 328 | 327 | ||
| 329 | /* Look up a kernel symbol and print it to the kernel messages. */ | 328 | /* Look up a kernel symbol and print it to the kernel messages. */ |
| @@ -343,8 +342,8 @@ struct kallsym_iter | |||
| 343 | unsigned long value; | 342 | unsigned long value; |
| 344 | unsigned int nameoff; /* If iterating in core kernel symbols */ | 343 | unsigned int nameoff; /* If iterating in core kernel symbols */ |
| 345 | char type; | 344 | char type; |
| 346 | char name[KSYM_NAME_LEN+1]; | 345 | char name[KSYM_NAME_LEN]; |
| 347 | char module_name[MODULE_NAME_LEN + 1]; | 346 | char module_name[MODULE_NAME_LEN]; |
| 348 | int exported; | 347 | int exported; |
| 349 | }; | 348 | }; |
| 350 | 349 | ||
