Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка с памятью 
:(
    Опции темы
virusman
Дата 5.6.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.11.2004

Репутация: нет
Всего: нет



Что это означает?
Код

*** glibc detected *** free(): invalid next size (fast): 0x10cc2720 ***

Вылетает после успешного выполнения функции
Код

void CNWNXFunction::GetRecentBic(char *value)
{
    char filename[255];
    char dirpath[255];
    sprintf(dirpath, "servervault/%s", value);
    Log(3,"Dirpath: %s\n",dirpath);
    DIR* mydir;
    mydir=opendir(dirpath);
    if(!mydir)
    {
        Log(1,"Cannot open directory.\n");
        value="";
        return;
    }
    dirent* dirf;
    time_t lasttime=0;
    char lastfile[255];
    while(dirf = readdir(mydir))
    {
        struct stat filestat;
        sprintf(filename, "%s/%s", dirpath, dirf->d_name);
        Log(3,"Checking file: %s\n",filename);
        if(stat(filename, &filestat)==0)
        {
            if(filestat.st_mtime > lasttime) sprintf(lastfile, "%s", filename);
        }
    }
    closedir(mydir);
    Log(3,"Resulting file: %s\n",lastfile);
    sprintf(value, "%s", lastfile);
    Log(3,"Done.");
}

Опытным путем установлено, что рушится только если есть sprintf(lastfile, "%s", filename) (строка 25).

Это сообщение отредактировал(а) virusman - 5.6.2005, 17:49
PM MAIL   Вверх
achmed
Дата 5.6.2005, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004

Репутация: нет
Всего: нет



Наверное память расстреливается.
( предположу, что длина полного пути файла получается >> 255,
портится указатель mydir, а функция closedir пытает что-то сделать
по этому указателю; Вообще надо пользоваться отладчиком, чтобы
такие баги отлавливать.)
PM MAIL   Вверх
virusman
Дата 5.6.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.11.2004

Репутация: нет
Всего: нет



Цитата
предположу, что длина полного пути файла получается >> 255

Нет, она меньше.
Цитата
портится указатель mydir, а функция closedir пытает что-то сделать по этому указателю

Без closedir было то же самое. Да и mydir вряд ли может испортиться.
PM MAIL   Вверх
achmed
Дата 5.6.2005, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004

Репутация: нет
Всего: нет



Приведи листинг лога твое программы.
Добавлено @ 18:39
Это бага glibc

https://bugzilla.redhat.com/beta/show_bug.cgi?id=150647

рекомендую посмотреть в Google.
PM MAIL   Вверх
virusman
Дата 5.6.2005, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.11.2004

Репутация: нет
Всего: нет



Цитата
Это бага glibc

https://bugzilla.redhat.com/beta/show_bug.cgi?id=150647

рекомендую посмотреть в Google.

Мда.. ну и фича. Спасибо. smile

Цитата
Приведи листинг лога твое программы.

Как?
Дело еще в том, что это .so, который подключается еде одним .so. smile
Добавлено @ 18:49
Опа.. Без проверки glibc он просто и ясно вылетает с сегфолтом. smile

Это сообщение отредактировал(а) virusman - 5.6.2005, 18:50
PM MAIL   Вверх
achmed
Дата 5.6.2005, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004

Репутация: нет
Всего: нет



Цитата
Как?


Я вижу там вызов какой-то функции логирования, хотя, теперь это уже неважно ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0862 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.