Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Краш сервера в функции vfprintf (hlds 6153 beta)

Статус пользователя SISA
сообщение 5.10.2016, 5:25
Сообщение #1
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

После перевода толстого сервера с 5787 на 6153 Beta, столкнулся с крашами, которых до селе не было smile.gif

После сбора данных, определился круг подозреваемых функций vfprintf и SV_SendClientDatagram и как впоследствии оказалось, запись битых данных в sizebuf_t

При отправке большого объема данных клиенту, есть вероятность записи битых значений в SendClientDatagram и дальнейшей порчи памяти.

Как итог, в консоли сервера можно получить вот такую чехарду:

Цитата
SZ_GetSpace: overflow on г‰—ARNING: msg overflowed for ZM=EVILZCS=RO [13]
SZ_GetSpace: overflow on A ВЃЕЃЖЃ
SZ_GetSpace: overflow on C ~A ВЃЕЃЖЃ


и в последствии неминуемый краш с сигфаулом:

Цитата
#0 0xf74ec488 in vfprintf () from /lib32/libc.so.6
#1 0xf7512753 in vsnprintf () from /lib32/libc.so.6
#2 0xf6f6bb73 in Con_Printf (fmt=0xf6fb57c0 "SZ_GetSpace: overflow on %s\n") at ../engine/sys_dll.c:2415
#3 0xf6f3775b in SZ_GetSpace (buf=0xff8a41bc, length=1) at ../engine/common.c:1762


из-за битой памяти, причины краша могут быть и другие, но чаще именно с overflow

Как оказалось, я далеко не первый, кто столкнулся с аналогичной проблемой: https://aghl.ru/forum/viewtopic.php?f=10&t=2301

В ReHLDS этот баг пофикшен. В 5787 небольшие вылезания за пределы буфера ничего не портят, по этому там крашей нет.

Возникновение такой проблемы, возможно только на толстых модовых серверах, где игрокам шлется чрезмерно много всякой каши.

В архиве добавил патченный engine_i486 (спасибо товарищу Lev) под билд 6153 бета. Ставить только тем, у кого реально есть краши с такой причиной и нет возможности переходить на ReHLDS.

Прикрепленный файл  engine_i486.zip ( 1,2 мегабайт ) Кол-во скачиваний: 21


Отредактировал: SISA, - 5.10.2016, 5:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: