#define HASH_BUCKETS 3
#define HASH_BLOOMS 1
- int n_syms = x64->dynsyms->size;
-
- if (x64->dyn_relas)
- n_syms -= x64->dyn_relas->size;
+ int n_syms = x64->dynsyms->size - x64->n_plts;
int len = sizeof(uint32_t) * 4 + sizeof(uint64_t) * HASH_BLOOMS
+ sizeof(uint32_t) * HASH_BUCKETS
scf_string_t* str = scf_string_alloc();
char c = '\0';
- int j = 0;
+ int j = x64->n_plts;
int i;
- if (x64->dyn_relas)
- j = x64->dyn_relas->size;
-
scf_string_cat_cstr_len(str, &c, 1);
for (i = 0; i < x64->dynsyms->size; i++) {
dyns[i + 8].d_tag = DT_JMPREL;
dyns[i + 5].d_un.d_ptr = (uintptr_t)x64->got_plt;
- dyns[i + 6].d_un.d_ptr = sizeof(Elf64_Rela);
+ dyns[i + 6].d_un.d_ptr = x64->rela_plt->data_len;
dyns[i + 7].d_un.d_ptr = DT_RELA;
dyns[i + 8].d_un.d_ptr = (uintptr_t)x64->rela_plt;