Перейти к содержанию
    

semen_semenych

Новичок
  • Постов

    2
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Здравствуйте. Вчера у человека не ставился Xilinx ISE 13/14 - вылет всего, начиная с инсталлятора, с buffer overflow exception (BEX / BEX64), попросили разобраться. В этом конкретном случае проблема была в системной переменной PATH, которая оканчивалась как-то так: "...mingw32\bin; ;". Виновник - какая-то библиотечная функция обрезания leading/trailing пробелов при разборе этой самой PATH, которая в их софте повсеместно встречается. Для примера, xwebtalk.exe (x32): int __cdecl sub_401110(char *src, char *dst) { char *tmp; // eax@1 int cnt; // edi@1 char *src_plus_one; // esi@1 char v5; // dl@2 int len; // edx@3 int result; // eax@3 int v8; // esi@8 tmp = src; cnt = 0; src_plus_one = src + 1; do v5 = *tmp++; while ( v5 ); len = tmp - src_plus_one; result = tmp - src_plus_one - 1; if ( len ) { if ( *src == 0x20 ) { do ++i; while ( src[cnt] == 0x20 ); } for ( ; src[result] == 0x20; --result ) ; v8 = result - cnt; result = (int)strncpy(dst, &src[cnt], result - cnt + 1); dst[v8 + 1] = 0; } return result; } Если присмотреться, то в случае, если вся строка состоит из пробелов, в качестве size для strncpy передаётся что-то вроде -strlen(src). Там и вываливался в дебаггер. Почистил PATH, убрав "; ;" - работает. Гуглем не нашёл подобного на форуме, может кому пригодится.
  2. Кто-нибудь может посоветовать рабочую версию DS-5 под линукс? Сейчас стоит 5.18, фикс с фтп, компилятор вылечился, но дебаггер ругается на лиц. Под виндой та же версия работает.
×
×
  • Создать...