↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы

есть либа, которую загружаю через dlopen, можно ли как-то подменить внешний символ, который будет использоваться в этой либе? конкретно я хочу, чтобы всё что внутри либы использовало кастомный malloc, а вот всё что снаружи — обычный

#3RS7JK / @hirthwork / 1885 дней назад

Разве что ручной правкой gotpcrel. Ещё вариант -- подмени malloc на свой, который будет определять по стэку откуда его вызвали...
#3RS7JK/PRX / @tzirechnoy / 1885 дней назад

@tzirechnoy идея смотреть на стек была, но я ещё не настолько горем убитый

#3RS7JK/V0G / @hirthwork --> #3RS7JK/PRX / 1885 дней назад
@hirthwork Ну, вот идея искать нужные gotpcrel по внутренним структурам libdl -- она как-то тяжэлее.
#3RS7JK/3MZ / @tzirechnoy --> #3RS7JK/V0G / 1885 дней назад
@hirthwork А, будешь смеяться, всё равно тебе надо подменять malloc -- поскольку free можэт вызываться не из той жэ либы, что и malloc. Потому тебе нужно это всё отроутить в нужное место.
#3RS7JK/VMP / @tzirechnoy --> #3RS7JK/V0G / 1885 дней назад
@hirthwork А логичнее, кстати, написать обёртку, которая будет включать другой malloc/realloc перед вызовом той либы и выключать после возврата. Чтобы все косвенные malloc учитывались. Ну, и роутер на free.
#3RS7JK/LHO / @tzirechnoy --> #3RS7JK/V0G / 1885 дней назад

Явно загрузить свою библиотеку с нужным malloc'ом в пустой namespace с помощью dlmopen(), потом туда же запихнуть интересующую библиотеку?

#3RS7JK/2DP / @ceyt / 1885 дней назад

@ceyt мой ман не знает про dlmopen

#3RS7JK/JGX / @hirthwork --> #3RS7JK/2DP / 1885 дней назад

@hirthwork Помолись Столлману.

#3RS7JK/ERY / @ceyt --> #3RS7JK/JGX / 1885 дней назад

@hirthwork Скопируй код тогда. Всё лучше, чем ассемблером смещения править.

#3RS7JK/D4M / @ceyt --> #3RS7JK/JGX / 1885 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.