angel2s2 / sams2

Automatically exported from code.google.com/p/sams2
GNU General Public License v2.0
1 stars 0 forks source link

(Trac:518) Переполнение в парсере логов при обработке длинных ip #511

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
(Trac:518) Originaly reported by PavelVinogradov on 2010-09-27 08:02:03

в squidlogparser.cpp есть строчка в функции parseFile

{{{
sprintf (s_ipaddr, "%s", sll.getIP ().c_str ());
}}}

Номер 489 или рядом, я пока ошибку нашел, файл 
слегка поменял.

Смысл ошибки в том, что буфер s_ipaddr размером 
15 байт. Если мы пытаемся туда поместить 
адрес типа 192.168.101.151, то финальный ноль 
(конец строки) в буфер не влезает и 
происходит вылет по переполнению буфера.

Вариант решения -- заменить sprintf на snprintf или 
увеличить длину буфера до 16.

Original issue reported on code.google.com by bl...@nixdev.net on 5 Jun 2011 at 8:16

GoogleCodeExporter commented 9 years ago
Commented by blaze@nixdev.net on 2010-09-27 08:02:47:

Fixed in [881]

Original comment by bl...@nixdev.net on 5 Jun 2011 at 8:16