1.83K subscribers
3.3K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
TIL что для #cpp есть предложение закрепить в стандарте тот факт, что в байте ровно 8 бит. Сейчас это не так: стандарт (и сишный тоже) требует, чтобы в char было минимум 8 бит, но точное их количество может быть больше, и это количество записано макросом CHAR_BIT из limits.h/climits.
👍6🤡5🫡4😁1
Forwarded from Experimental chill
https://security.googleblog.com/2024/11/retrofitting-spatial-safety-to-hundreds.html

Ну и в догонку очень быстрый апдейт. Включить bound checks отразилось всего в 0.3% регрессии по всему C++ гугла в среднем. Чтобы было так мало, мы ждали пока FDO (feedback driven optimizers) возьмут новые профили. В итоге кто-то меньше, кто-то больше, но я был доволен результатом. Количество сегфолтов в проде стало на 30% меньше. Сегфолты по разным причинам бывают и из-за тестовых бинарей в том числе (другой метрики у нас нет, поэтому репортим что есть).
🔥14🌚3👍1
23👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9🥴54💩2🤡1🤝1
Мифические существа:

* Единороги
* Йети
* Пришельцы
* Модули в C++
💯14😁10👍1🤣1😭1
Forwarded from #JustWeebThings (スコーット Gabriel)
damn
😭152🌚1
Статья называется Modern C# Techniques, Part 2: Value Records, если что

(#prog #csharp #suckassstory)
🤨6🤡4😁1
😁26💯2🌚1😭1
Forwarded from Foresighted (Ἀλέξανδρος)
14💯3🥰1😁1
Forwarded from piece of duke
З коментів
🥰9
😭16💯5🤷1
Сегодня отмечается Международный мужской день
😁15😭86🥰2💩2👍1
#prog #db #menacingopensource

github.com/frectonz/pglite-fusion

Embed an SQLite database in your PostgreSQL table. AKA multitenancy has been solved.

(thanks @nosingularity)
🥴12👌2👍1
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешников" и "айтишников" заменят "роботы" 🌝

Сегодня мы с радостью готовы поделиться первой уязвимостью из реального мира, обнаруженной агентом Big Sleep: отрицательным переполнением (underflow) буфера стека с возможностью реализации эксплойтов в SQLite, — широко используемом опенсорсном движке баз данных. Мы обнаружили уязвимость и сообщили о ней разработчикам в начале октября, и они устранили её в тот же день. К счастью, мы обнаружили эту проблему до её появления в официальном релизе, так что она не затронула пользователей SQLite.

Как мы нашли уязвимость в SQLite при помощи LLM
https://habr.com/ru/articles/855882/

Оригинальный пост
https://googleprojectzero.blogspot.com/2024/10/from-naptime-to-big-sleep.html

Но я сейчас хотел бы не про это.

SQLite знаменит тем, что они очень трепетно относятся к тестированию своего кода.

В частности, тестового кода в 590 (пятьсот девяносто) раз больше, чем кода самого проекта

As of version 3.42.0 (2023-05-16), the SQLite library consists of approximately 155.8 KSLOC of C code. (KSLOC means thousands of "Source Lines Of Code" or, in other words, lines of code excluding blank lines and comments.) By comparison, the project has 590 times as much test code and test scripts - 92053.1 KSLOC.

Думаю говорить о том, что там 100% покрытие ветвлений не надо.

SQLite активно использует fuzzing. Использовать они его начали после того исследователь Михал Залевски (Michał Zalewski) нашёл 22 бага с помощью фаззера

Фаззинг нашёл 22 бага в SQLite за полчаса
https://xakep.ru/2015/04/16/fazzing-sqlite/

Оригинальный пост
Finding bugs in SQLite, the easy way
https://lcamtuf.blogspot.com/2015/04/finding-bugs-in-sqlite-easy-way.html

Или, например, у них есть Valgrind, который позволяет отлаживать работу с оперативой, делать профилировку и обнаруживать утечки

SQLite делает ещё кучу всего, что бы сделать свой продукт лучше. Подробней можно почитать на отдельной странице - https://www.sqlite.org/testing.html

И в таких условиях всё равно находятся регулярно баги, что-то нужно править и т.д.

А теперь посмотрите на весь остальной код, который используется вами, пишется вами и в целом существует вокруг вас. Много ли проектов так же щепетильно подходят к его качеству? 🌝
🌚21🔥7👍3🤡1
😁20💯11💔1
🤣43💔14😁4🥰1
#prog #amazingopensource

Automatically inferring file syntax with afl-analyze

Инструмент для фаззинга AFL использует покрытие потока исполнения для того, чтобы генерировать новые кандидаты тестовых данных. Это позволяет эффективно фаззить софт. Однако оснастка для анализа покрытия может быть использована и для других целей.

Один из инструментов, который использует эту оснастку — afl-analyze. Мутируя входные данные и наблюдая за поведением программы, обрабатывающей вход, он может автомагически до некоторой степени разобрать структуру входа на уровне до байтов.

На скриншоте представлен результат запуска этого инструмента на файле PNG и программе для его чтения.
👍53