- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
char *CHudTextMessage::LocaliseTextString( const char *msg, char *dst_buffer, int buffer_size )
{
char *dst = dst_buffer;
for ( char *src = (char*)msg; *src != 0 && buffer_size > 0; buffer_size-- )
{
if ( *src == '#' )
{
// cut msg name out of string
static char word_buf[255];
char *wdst = word_buf, *word_start = src;
for ( ++src ; *src >= 'A' && *src <= 'z'; wdst++, src++ )
{
*wdst = *src;
}
*wdst = 0;
Тут недавно слили исходники «Team Fortress 2» и «Counter Strike: Global Offense» — и в соответствующих местах начался вой игроков: кошмар, мы все умрём, нас всех взломают!
Ещё смешнее наблюдать за тем, что после слива хакеры действительно всех ломают: https://i.imgur.com/Q9FedYy.png, и в TF2 уже нашли кучку RCE (в посте не RCE, а просто рандомное переполнение буфера, которое я нашёл за пять минут просмотра сорцов).
Казалось бы, при чём здесь опенсорс?..
Такой код в принципе не сулит ничего хорошего.
Нахуя?! Не пишут же туда ничего. Чтобы потом == и = попутать и таки что-то туда записать?
Да не говори. В 99% случаев, заметив работу со строками или путями в си или крестах, можно найти RCE или хотя бы краш.
Вот, казалось бы, банальная задачка - проверить, что тег есть в списке тегов, разделённых запятой. Чтение за границей буфера, кровь-кишки, RCE рандомный ответ.
Грустно это всё.
- каким программистом на С++ будешь сегодня ты?
Это просто древний «C++» образца года эдак 2005-го.
питух видит импилист знание
Впрочем я ожидал в ответ классическую петросянщину