Мохнатые уроды и моральные пёзды. Войти !bnw Сегодня Клубы
Что-то я запамятовал. Если я вызываю delete для указателя на базовый класс без виртуального деструктора это UB? И что фактически должно случиться кроме утечки памяти и потери логики деструктора производного класса? А то я тут ищу double free в кишка std;;string и уже не знаю на что грешить.
#56UCI8 / @ndtimofeev / 3186 дней назад

> ищу double free в кишка std;;string очень сомнительно, у тебя тама abi между программой и библиотеками не уехало часом? (пруф или в линуксе не бывает такого)
#56UCI8/5DF / @mugiseyebrows / 3186 дней назад
@mugiseyebrows ещё как бывает с C++
#56UCI8/H2F / @anonymous --> #56UCI8/5DF / 3186 дней назад

@mugiseyebrows можешь тоже вот поразвлекаться.
[06:30]<lexszero> есть кусок говнокода, ебущийся в смесь std::string и сишных строк. когда в нем кидается эксепшон, наступает какая-то жопа, glibc говорит что double free и грязно падает. какого хуя?
https://github.com/contactless/wb-homa-drivers/blob/master/wb-homa-adc/sysfs_adc.cpp#L104
[12:08]<lexszero> эта хуйня вызывается для каждого канала прописанного в конфиге.
если в конфиге только один канал, с которым должен кидаться экзепшон - он нормально кидается и ловится.
если перед ним прописан другой канал на котором экзепшон не кидается - получаем double free.

#56UCI8/XWP / @lexszero --> #56UCI8/5DF / 3186 дней назад
@lexszero valgrind
#56UCI8/ZYP / @anonymous --> #56UCI8/XWP / 3186 дней назад

@anonymous root@wirenboard:~# ./wb-homa-adc -d -c ./wb-homa-adc.conf

*** glibc detected *** ./wb-homa-adc: double free or corruption (fasttop): 0x01a469d8 ***
Aborted
root@wirenboard:~# valgrind ./wb-homa-adc -d -c ./wb-homa-adc.conf
Illegal instruction

spasibo!

#56UCI8/7UI / @lexszero --> #56UCI8/ZYP / 3186 дней назад

@lexszero там libcrypt юзается который SIGILL&#39;ами проверяет поддерживаемые процом фичи.

#56UCI8/13M / @lexszero --> #56UCI8/7UI / 3186 дней назад
@lexszero ну дунчи, если бы в такой широко используемой библиотеке как ~~leftpad~~ std::string была ошибка, падало бы всё и у всех, в особенности что не так много разных операций можно придумать со строками может здеся чот не так: `std::shared_ptr<TSysfsAdcChannel> TSysfsAdc::GetChannel(int i)` `const std::string& TSysfsAdcChannel::GetName() const`
#56UCI8/8FS / @mugiseyebrows --> #56UCI8/XWP / 3186 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

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