Commit ceddac39 authored by Dmitry Safonov's avatar Dmitry Safonov Committed by Pavel Emelyanov

util-vdso: correct vdso symbol's length

VDSO_SYMBOL_MAX is max number of symbols, not their max length.
Fixes my buggy commit: 4c69339c ("string.h/pie: use builtin strncmp
instead of strcmp"). Sorry for that bogus misprinting.

Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 42cc04fc
...@@ -205,6 +205,7 @@ static void parse_elf_symbols(uintptr_t mem, size_t size, Phdr_t *load, ...@@ -205,6 +205,7 @@ static void parse_elf_symbols(uintptr_t mem, size_t size, Phdr_t *load,
const char *vdso_symbols[VDSO_SYMBOL_MAX] = { const char *vdso_symbols[VDSO_SYMBOL_MAX] = {
ARCH_VDSO_SYMBOLS ARCH_VDSO_SYMBOLS
}; };
const size_t vdso_symbol_length = sizeof(t->symbols[0].name);
Word_t nbucket, nchain; Word_t nbucket, nchain;
Word_t *bucket, *chain; Word_t *bucket, *chain;
...@@ -239,14 +240,14 @@ static void parse_elf_symbols(uintptr_t mem, size_t size, Phdr_t *load, ...@@ -239,14 +240,14 @@ static void parse_elf_symbols(uintptr_t mem, size_t size, Phdr_t *load,
continue; continue;
addr = dynsymbol_names + sym->st_name; addr = dynsymbol_names + sym->st_name;
if (__ptr_struct_oob(addr, VDSO_SYMBOL_MAX, mem, size)) if (__ptr_struct_oob(addr, vdso_symbol_length, mem, size))
continue; continue;
name = (void *)addr; name = (void *)addr;
if (builtin_strncmp(name, symbol, VDSO_SYMBOL_MAX)) if (builtin_strncmp(name, symbol, vdso_symbol_length))
continue; continue;
builtin_memcpy(t->symbols[i].name, name, VDSO_SYMBOL_MAX); builtin_memcpy(t->symbols[i].name, name, vdso_symbol_length);
t->symbols[i].offset = (unsigned long)sym->st_value - load->p_vaddr; t->symbols[i].offset = (unsigned long)sym->st_value - load->p_vaddr;
break; break;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment