170 похожих чатов

Получил в терминале * stack smashing detected *: terminated. С

того что почитал, это встроенная в gcc защита от дебила, когда буффер переполняется. Почему, чисто в теории, так происходит - понятно, я рекурсивно прохожусь по всех директориях системы. Но, как это правильно исправить? Тут больше вопрос по тому как оно устроено внутри. Если у меня 5 раз рекурсивно вызвалась функция, например, она забирала себе участок памяти каждый раз. Но, например, если отработали 4 из 5 этих функций, я себе представляю, что место, с этих 4х функций, при возврате вернулось в пользование. Это так? Или сначала рекурсивная функция (или даже программа в целом) должна отработать полностью и завершиться, дабы память вернулась?

9 ответов

24 просмотра

Показывай код. Пять раз вызванная рекурсивно функция не переполнит стек, если там нет жирнющих локальных переменных. Насчёт возврата памяти - всё так, память "возвращается" в момент завершения выполнения функции

TeeGeRoN-Corp Автор вопроса
Alexander Karaev
Показывай код. Пять раз вызванная рекурсивно функц...

Это я для примера. Сейчас с компа кину. Скорее всего переменные там достаточно занимают, дабы положить буффер.

TeeGeRoN-Corp Автор вопроса

В main`e начинается поиск с дир /home. Можно поменять. А ломается примерно на 14й директории внутрь.

TeeGeRoN Corp
В main`e начинается поиск с дир /home. Можно помен...

Это не stack overflow, а buffer overflow - скорее всего, на имя директории не хватает 255 символов

TeeGeRoN-Corp Автор вопроса
Alexander Karaev
Это не stack overflow, а buffer overflow - скорее ...

‘nextdir’ accessing 1000 bytes in a region of size 255 [-Wstringop-overflow=] Варнинг получаю. Вроде как я не могу больше 255 передать внутрь

TeeGeRoN-Corp Автор вопроса
Denis P
char filename[256]; char seachFile[256];

я везде заменил на 1000

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
61
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Привет всем. Не знаю, удачный ли чатик я выбрал для вопроса, но он как будто в целом про концепцию фп и конкретно про Haskell. Прочитал, что в целом в мире фп нет идеи мутабел...
Gellert Cringewald
15
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
@helgispbru @Dreamer_0x01 @Pathologic93 @webber_12 Не уверен, что вам всем это жутко интересно, но в продолжение недавнего диалога отправлю свои наброски. Хочу понять, правил...
Андрей [aharito] Харитонов
13
Карта сайта