The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск cppcheck 2.7, статического анализатора кода для языков C++ и С"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск cppcheck 2.7, статического анализатора кода для языков C++ и С"  +/
Сообщение от opennews (??), 08-Фев-22, 16:20 
Вышла новая версия статического анализатора кода cppcheck 2.7, позволяющего выявлять различные классы ошибок в коде на языках Си и Си++,...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=56661

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –5 +/
Сообщение от Аноним (1), 08-Фев-22, 16:20 
а есть что-то подобное для раста? для выявления утечек памяти и всего такого -- в общем типичных проблем растокода
Ответить | Правка | Наверх | Cообщить модератору

4. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +4 +/
Сообщение от topin89 (ok), 08-Фев-22, 17:02 
> для выявления утечек памяти и всего такого -- в общем типичных проблем растокода

А ты хорош!

Но если серьёзно, cppcheck -- это так себе решение в сравнении с каким-нибудь Coverity, тем анализатором с Хабра или даже clang-analyzer.

Линтеры есть, тот же clippy. Но я ненастоящий растоман, за качество инструментов ничего говорить не буду

Ответить | Правка | Наверх | Cообщить модератору

15. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Аноним (15), 08-Фев-22, 19:32 
Отличный компактный инструмент

ковертли вообще монстр, да еще и платный, да еще и сложный в настройке

анализатор с хабра пора выбросит на помойку

кланг анализер не все находит что сабж, но для сильно подробных разборов полётов, кланг анализер показывает
весь контрол флов

Ответить | Правка | Наверх | Cообщить модератору

22. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +2 +/
Сообщение от Самокатофил (?), 08-Фев-22, 20:28 
Да лан, надо отдать должное этим чувакам, они свой пивас затолкали даже интолу, вроде?!

Из природной брезгливости к проприетарщине, я не пробовал пивас. Ничего не скажу. Но упорство с которым они затолкали его кому-то в интоле, мелкомягким, эт нечто.

Ответить | Правка | Наверх | Cообщить модератору

29. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (29), 08-Фев-22, 21:59 
У коверити есть бесплатный CI для свободных проектов.
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

6. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –2 +/
Сообщение от Аноним (6), 08-Фев-22, 17:16 
Я так и не смог найти каких-нибудь инструментов для раста. Память просто вытекает _куда-то_, исполнение просто зависает _почему-то_, но зато без проблем с кодом. Может быть стоит подождать и баги ллвм исправят, тогда то точно всё будет работать как надо.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

8. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (6), 08-Фев-22, 17:28 
Ах да, ещё вечные проблемы с синхронизацией мультипотока в расте ударили с новой силой. Да я смотрю и жырнолисе косяки синхронизации табов полезли как вебрендер на расте впихнули, хотя, казалось бы, главный и единственный пользователь раста должен понимать, что к чему. Отсутствие инструментов для отладки делает ситуацию куда хуже чем с привычными проблемами плюсов.
Ответить | Правка | Наверх | Cообщить модератору

10. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Анонн (?), 08-Фев-22, 18:15 
Ты наркоман что ли? Какое отношение веб-рендер имеет к синку табов?
Ответить | Правка | Наверх | Cообщить модератору

11. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Аноним (6), 08-Фев-22, 18:36 
Табы отваливаются из-за вебрендера, не иначе. Это проявляется как глюки отрисовки при попытке скроллить и глюки интерфейса, можно переключить на соседний таб в другом контентном процессе и там всё  нормально, он не теряется. Если бы можно было прибить контентный процесс я бы не жаловался, но при этом весь интерфейс перестаёт нормально работать и единственное решение это перезапуск. До вебрендера такого точно не было. Проявляется чаще всего когда таб возвращается из свопа.

А ещё периодически начинает жрать в 5 раз больше ресурсов, будто включился программный режим вебрендера, только хуже. Я настроил так, чтобы он не включался, можно сделать вывод, что раст игнорирует настройки.

Ответить | Правка | Наверх | Cообщить модератору

18. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –2 +/
Сообщение от Alexey (??), 08-Фев-22, 20:06 
На самом деле вопрос надо ставить не так. "Есть ли для C++ такие анализаторы, которые ищут проблемы с памятью так же хорошо как базовый синтакс Rust". И ответ - нет.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

21. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +1 +/
Сообщение от Самокатофил (?), 08-Фев-22, 20:23 
https://nvd.nist.gov/vuln/detail/CVE-2018-1000810

https://nvd.nist.gov/vuln/detail/CVE-2021-28875

- Ну что, сынку, помог тебе твой раст?

P.S. Банально первые ссылки из гугла.

Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Самокатофил (?), 08-Фев-22, 20:29 
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust

Безопастност.

Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Аноним (38), 09-Фев-22, 08:38 
Вродебы раст позиционируется как штука которая исключит подобные ошибки.

CVE-2021-45715     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. create_window_function has a use-after-free.

Ответить | Правка | Наверх | Cообщить модератору

51. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Самокатофил (?), 09-Фев-22, 15:12 
> Вродебы раст позиционируется как штука которая исключит подобные ошибки.
> CVE-2021-45715  An issue was discovered in the rusqlite crate 0.25.x before
> 0.25.4 and 0.26.x before 0.26.2 for Rust. create_window_function has a use-after-free.

Пропаганда. Смотри:

https://github.com/jeromefroe/lru-rs/pull/121

Уязвимость тянется отсюда:

https://github.com/jeromefroe/lru-rs/issues/120

Как видишь, просто, без рук и ансейфа, как там ниже анон возмущается.

Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (58), 09-Фев-22, 15:31 
> https://github.com/jeromefroe/lru-rs/issues/120
> Как видишь, просто, без рук и ансейфа, как там ниже анон возмущается.

Прекращай смотреть опой:

 
#![no_std]
...
-    pub fn iter<'a>(&'_ self) -> Iter<'a, K, V> {
+    pub fn iter(&self) -> Iter<'_, K, V> {
        Iter {
            len: self.len(),
            ptr: unsafe { (*self.head).next },


Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Alexey (??), 08-Фев-22, 21:26 
Дык давайте тогда с C++ и C сравним. Вот где безопасность должна быть. Все-таки 40 лет разработки.
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

28. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Самокатофил (?), 08-Фев-22, 21:38 
Но ведь "базовый синтаксис раст", май эс. ;)

Сравнивать с цэ? Пожалуйста. С цэпэпэ - пожалуйста. С цэ/цэпэпэ - вам не кажется что это неадекватно? :-D

Ну и положа руку на сердце, не думаете что тех CVE как-то слишком уж многовато для такого малоиспользуемого и маргинального языка? Ну, в сравнении с сишкой из 70х, и цэпэпэ, у которых петабайты исходного кода. Ммм?

Ответить | Правка | Наверх | Cообщить модератору

78. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +1 +/
Сообщение от фывфывфыв (?), 10-Фев-22, 13:56 
Внезапно, да, помог. Хочешь писать безопасно? Лови небольшие оверхеды и используй unsafe. Хочешь быстро? Следи за своим кодом сам. Что не так?
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

24. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –2 +/
Сообщение от Аноним (24), 08-Фев-22, 21:19 
> И ответ - нет.

Обосновать свой громки пук опеннетный эксперт, разумеется, не потрудился.

Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

41. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Crazy Alex (ok), 09-Фев-22, 11:33 
Если для практики, а не меряться "кто круче" - то вообще тривиально. Банальная проверка на отсутствие сырых указателей как членов класса и создания умных указателей из сырых (а не с помощью make_unique()/make_shared()) и арифметики с указателями вне begin() и  end() вылечит 99% проблем. Остаётся ещё всякий bounds checking по вычисленным индексам - но это в прицнипе в компайл-тайме не ловится, а в рантайме адски дорого.

Останется небольшая доля нетривиальных извращений, которые в любом случае надо ревьюить, так как там больше вопросов будет не по управлению памятью, а покоррктности алгоритмикив целом (всякие кастомные аллокаторы в основном).

Другими словами - пишете код в рекомендованном современном плюсовом стиле, а не так, как привыкли до 11-го года - и нет проблем.

Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

25. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от ЛОЛВАТ (?), 08-Фев-22, 21:26 
в раст все работает из коробки
раст даже пишет код за тебя
неважно как и какой код написал раст программа будет работать так как ты задумал в голове. это не магия это раст.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

27. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Alexey (??), 08-Фев-22, 21:30 
Нет, по сути язык заставляет писать код, который проходит его внутренний линтер (в его случае линтер следить за владением объектов). Так что априори код безопаснее, чем C++, где компилится даже откровенно бредовый код, который должен просто быть синтаксически верным. Т.е. можете просто написать код, который в бесконечном цикле выделяет через new память и не освобождает. И вам для этого даже не надо писать хаки, фича доступна из коробки.
Ответить | Правка | Наверх | Cообщить модератору

35. Скрыто модератором  –1 +/
Сообщение от Аноним (35), 09-Фев-22, 04:51 
Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (38), 09-Фев-22, 08:40 
>который проходит его внутренний линтер (в его случае линтер следить за владением объектов).

Да что-то как-то не особо то и следит.


CVE-2021-45719     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. update_hook has a use-after-free.
CVE-2021-45718     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. rollback_hook has a use-after-free.
CVE-2021-45717     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. commit_hook has a use-after-free.
CVE-2021-45716     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. create_collation has a use-after-free.
CVE-2021-45715     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. create_window_function has a use-after-free.
CVE-2021-45714     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. create_aggregate_function has a use-after-free.
CVE-2021-45713     An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. create_scalar_function has a use-after-free.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

44. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (-), 09-Фев-22, 12:50 
>>который проходит его внутренний линтер (в его случае линтер следить за владением объектов).
> Да что-то как-то не особо то и следит.
> CVE-2021-45719  An issue was discovered in the rusqlite crate 0.25.x before
> 0.25.4 and 0.26.x before 0.26.2 for Rust. update_hook has a use-after-free.

https://github.com/rusqlite/rusqlite/pull/1049/commits/42605...

 +16,9 @@ unsafe extern "C" fn free_boxed_value<T>(p: *mut c_void) {
impl Connection {
...
> {

        unsafe extern "C" fn call_boxed_closure<C>(
            arg1: *mut c_void,


Какой громкий пук ...

Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (38), 09-Фев-22, 13:19 
Получается без unsafe ничего на Rust кроме Hello World не написать.
Ответить | Правка | Наверх | Cообщить модератору

50. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Аноним (50), 09-Фев-22, 15:05 
> Получается без unsafe ничего на Rust кроме Hello World не написать.

Получается, если из раста коснуться внешнего г.вна, написанного на си - всё превращается в г.вно. Си - этакий современный царь Мидас, только чаще превращает не в золото. А не взаимодействовать с уже написанными петабайами сишного г.вна не всегда получается - даже ядро линукса на нем написано. Но это не на долго, работы в этом направлении начаты...

Ответить | Правка | Наверх | Cообщить модератору

52. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Самокатофил (?), 09-Фев-22, 15:14 
>> Получается без unsafe ничего на Rust кроме Hello World не написать.
> Получается, если из раста коснуться внешнего г.вна, написанного на си - всё
> превращается в г.вно. Си - этакий современный царь Мидас, только чаще
> превращает не в золото. А не взаимодействовать с уже написанными петабайами
> сишного г.вна не всегда получается - даже ядро линукса на нем
> написано. Но это не на долго, работы в этом направлении начаты...

А что скажешь на это:

https://github.com/jeromefroe/lru-rs/issues/120

Тоже си нахрапел вам в штаны? :-D


Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Аноним (55), 09-Фев-22, 15:20 
Какой чудный раст!
Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (58), 09-Фев-22, 15:25 
> А что скажешь на это:
> https://github.com/jeromefroe/lru-rs/issues/120
> Тоже си нахрапел вам в штаны? :-D

https://github.com/jeromefroe/lru-rs/commit/3c6fdf07a4ab58f6...


#![no_std]
...
-    pub fn iter<'a>(&'_ self) -> Iter<'a, K, V> {
+    pub fn iter(&self) -> Iter<'_, K, V> {
        Iter {
            len: self.len(),
            ptr: unsafe { (*self.head).next },

Какой унылый спрыг.

Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

54. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Аноним (55), 09-Фев-22, 15:17 
> из раста коснуться внешнего

А что, раст ни для чего не подходит, кроме как написания обёрток вокруг Си?!

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

57. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (58), 09-Фев-22, 15:28 
>>> rusqlite
>>> wrapper for using SQLite from Rust.
>> из раста коснуться внешнего
> А что, раст ни для чего не подходит, кроме как написания обёрток вокруг Си?!

Кончай уже газифицировать лужи.

Ответить | Правка | Наверх | Cообщить модератору

67. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Самокатофил (?), 09-Фев-22, 17:27 
>> из раста коснуться внешнего
> А что, раст ни для чего не подходит, кроме как написания обёрток
> вокруг Си?!

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

Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

42. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Crazy Alex (ok), 09-Фев-22, 11:35 
...а потом оказывается, что вы пишете программу для тестирования работы OOM киллера.

Что характерно - написать бесконечный цикл, тыпо выделяющий память (ну в виде создания объектов, например) можно вообюще на любом языке.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

31. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (31), 08-Фев-22, 23:55 
В компилятор встроен - одна половина MIR, вторая половина в официальном крейте Miri https://github.com/rust-lang/miri#bugs-found-by-miri
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

32. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (31), 09-Фев-22, 00:00 
Есть еще tsan https://github.com/tokio-rs/loom
Ответить | Правка | Наверх | Cообщить модератору

81. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Redanec (?), 11-Фев-22, 23:41 
Miri
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

3. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (3), 08-Фев-22, 16:49 
Пользуются ли ей разработчики KDE?
Ответить | Правка | Наверх | Cообщить модератору

9. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +3 +/
Сообщение от Анонн (?), 08-Фев-22, 18:13 
Отличный и крайне недооцененный проект. Жалко что им так мало пользуются.
Ответить | Правка | Наверх | Cообщить модератору

13. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (15), 08-Фев-22, 19:30 
много кто пользуется
Ответить | Правка | Наверх | Cообщить модератору

19. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Alexey (??), 08-Фев-22, 20:07 
Сильно много ложных срабатываний.
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

20. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +2 +/
Сообщение от Самокатофил (?), 08-Фев-22, 20:14 
Отличный. Когда-то даже удивился, увидев его враппер в исходниках wireshark'a. Инструмент оцененный теми, кому надо. Вот бы еще разраб сделал нормальный ман, вместо этого генерируемого убожества... просто же, ну, или, если удобно так -- добавлять в дист сгенеренный ман, как принято у аристократии...
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

30. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +1 +/
Сообщение от Аноним (30), 08-Фев-22, 23:44 
>> Добавлена поддержка представлений (view) контейнеров - в тег библиотеки добавлен атрибут view, указывающий, что класс является представлением. Код анализа времени жизни обновлён для использования данного атрибута при поиске "висячих" контейнеров;

Когда я изучал С++ там не было ни вью, ни контейнеров. Тем более висячих.

Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +2 +/
Сообщение от Аноним (33), 09-Фев-22, 02:20 
Когда я изучал C++ не было ... так что и ну его нафиг
Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (48), 09-Фев-22, 13:57 
Когда Я изучал, С++ еще не было..
Ответить | Правка | Наверх | Cообщить модератору

74. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от . (?), 10-Фев-22, 06:49 
я ждал что ктото это напишет. такие вы пупсики
Ответить | Правка | Наверх | Cообщить модератору

34. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от . (?), 09-Фев-22, 03:46 
странные ощущения оставляет. как будто зря каждый раз жру кактус чтобы его настроить, а выдача как от модных варнингов гцц. (про си)
Ответить | Правка | Наверх | Cообщить модератору

37. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Анонимemail (37), 09-Фев-22, 07:12 
Описание к третьей ссылке поправьте. Во-первых, MIRSA - это не стиль оформления кода. Во-вторых, в cppcheck нет проверок стилей оформления кода.
Ответить | Правка | Наверх | Cообщить модератору

76. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (76), 10-Фев-22, 09:39 
Им посрать.
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Совершенно другой аноним (?), 10-Фев-22, 11:28 
Подскажите пожалуйста, как это лучше назвать? Стиль кодирования? Правила кодирования?
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

80. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  –1 +/
Сообщение от Аноним (-), 11-Фев-22, 09:11 
Правописание.
Ответить | Правка | Наверх | Cообщить модератору

43. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от InuYasha (??), 09-Фев-22, 11:38 
Что-то подсказывает мне, что donate-cpu.py имеет в зависимостях donate-bandwidth.py...
Ответить | Правка | Наверх | Cообщить модератору

75. "Выпуск cppcheck 2.7, статического анализатора кода для языко..."  +/
Сообщение от Аноним (76), 10-Фев-22, 09:38 
Не надо. Далее стандартные средства студии находят больше, чем это.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру