1.96K subscribers
3.85K photos
147 videos
15 files
4.02K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Incident Report: CVE-2026-LGTM

Необычный жанр: #itsec-сатира (и ещё немного #ml)
😁4
We deserve a treat ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚11😭2
Forwarded from k8s (in)security (r0binak)
Massimiliano Oldani (sgrakkyu) опубликовал PoC, который из непривилегированного процесса внутри изолированного по сети контейнера даёт полноценный побег на хост с root. В основе — свежезакрытая уязвимость IPv6-стека ядра Linux: при сборке UDPv6-фрагментов через splice() ядро выделяло буфер только под заголовки, забывая про перенос выровненных байтов (fraggap), и запись уходила за конец объекта прямо в служебную структуру skb_shared_info.

Дальше один испорченный байт nr_frags разворачивается в page use-after-free и технику Dirty Pagetable с произвольным чтением/записью ядра: KASLR обходится через SMP-трамплин, SELinux глушится подменой пролога avc_denied(), а сам побег из контейнера делается через core_pattern. Всё срабатывает детерминированно, без heap-grooming и без каких-либо привилегий.

Баг тихо жил с ядра 6.0, но эксплуатировать его стало возможно только с версии 6.6, после которой он попал во все поддерживаемые ветки и был незаметно убран коммитом в середине июня — без CVE, без advisory и без бэкпорта в stable, что автор и критикует: фикс лежит в открытом дереве, фактически раздавая рабочий 0-day. Опубликованный PoC намеренно ослаблен и работает только на ядрах без CONFIG_INIT_ON_ALLOC (RHEL/CentOS). Боевую версию обещают после выхода патчей.
🤩21
...вообще всё
💯18🥰4😁1
#гейчят радует:

Если муж и жена — одна сатана, то муж и муж — один уж
💯5🍌3
I think LLM is a Literal Lies Machine.


#ml #quotes
😭7👍3😢2😁1🤩1
PRIDE MONTH IS OVER

STOP BEING GAY
💔19💯10🎉7❤‍🔥1
Блог*
#prog #csharp #suckassstory C# — пример того, как не надо делать язык программирования. C# очень странно относится к затенению переменных. Обычно он это запрещает. Вот такой код, например, не компилируется: string x = "Hi"; if (true) { string x = "Bye";…
#prog #csharp #suckassstory

using System;
using System.Collections.Generic;

var arr = new int[] {1, 2, 3};
Console.WriteLine(arr); // System.Int32[]
var list = new List<int>{1, 2, 3};
Console.WriteLine(list); // System.Collections.Generic.List`1[System.Int32]


Блин, спасибо, очень полезно.

Для сравнения, #java:

import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

class Main {
public static void main() {
var arr = new int[] {1, 2, 3};
System.out.println(arr); // [I@251a69d7
System.out.println(Arrays.toString(arr)); // [1, 2, 3]
var list = new ArrayList<>(List.of(1, 2, 3));
System.out.println(list); // [1, 2, 3]
}
}
😁5🍌5
Блог*
#prog #csharp #suckassstory using System; using System.Collections.Generic; var arr = new int[] {1, 2, 3}; Console.WriteLine(arr); // System.Int32[] var list = new List<int>{1, 2, 3}; Console.WriteLine(list); // System.Collections.Generic.List`1[System.Int32]…
Справедливости ради, в C# всё же можно добиться желаемого через

Console.WriteLine($"[{string.Join(", ", arr)}]"); // [1, 2, 3]


Но выглядит как-то слишком многословно для такой базовой операции. Даже в Java для этого сделали отдельный метод, пусть и на util-классе
👍3
Forwarded from AlexTCH
You can now connect your JetBrains IDE to LinkedIn and showcase your real tool usage rather than relying solely on self-reported skills.

This is so disgusting...

1. Like, being proficient in IDE usage is the most important skill for a developer now? What, the code is now being written by an LLM "agent", and the "programmer" needs only to know what buttons to click in an IDE to close a ticket in Jira?

2. If I say I know my way around an IDE, I cannot be trusted? I need to prove it now?

3. Surveillance and automatic time tracking. "I'm loving it!"

Great job, folks. Thank you so much.
11🌚6🤯3😢2
Forwarded from Random Rust Dev
- Copilot, collect this Iterator into Vec
- Say no more
😁16🤮7💩1
#prog #rust #rustreleasenotes

(в силу непонятных причин я почему-то полностью пропустил этот релиз, который был аж 28 мая)

Вышла версия Rust 1.96.0! Как всегда, тут только избранные части, а всё целиком в детальных заметках о релизе.

▪️До стабильной версии дошли Range, RangeFrom и RangeInclusive из core::range. В отличие от существующих типов диапазонов, эти типы реализуют IntoIterator, но не Iterator. Это позволяет им быть Copy и иметь публичные поля без подводных камней, присущих неявно копируемым итераторам. Как вы могли заметить, в этот список не входят RangeTo и RangeFull, но они и так не могли быть итераторами и потому реализовывали Copy. В следующей edition планируют переключить синтаксис диапазонов на создание этих новых типов. До этого переключение между типами облегчено за счёт реализаций From между новыми и старыми типами.

▪️Стабилизировали макросы assert_matches! и debug_assert_matches!, которые проверяют не на равенство, а на соответствие паттерну (и потому могут дать более внятное сообщение об ошибке, чем assert_eq!. Пример из блога:

use core::assert_matches;

/// [Random Number](https://xkcd.com/221/)
fn get_random_number() -> u32 {
// chosen by a fair dice roll.
// guaranteed to be random.
4
}

fn main() {
assert_matches!(get_random_number(), 1..=6);
}


Пример сообщения об ошибке:

use core::assert_matches;

fn main() {
let x = ('a', None::<i32>);
assert_matches!(x, ('a' | 'b' | 'c', Some(42)));
}


⬇️

thread 'main' (31) panicked at src/main.rs:5:5:
assertion `left matches right` failed
left: ('a', None)
right: ('a' | 'b' | 'c', Some(42))
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


Как и другие assert*-макросы, туда можно добавить аргументы для дополнительного форматирования при панике.

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

▪️Теперь можно итерироваться по диапазонам из беззнаковых `NonZero` чисел.

▪️Определение "valid to read/write" для сырых указателей теперь явно исключает null. Некоторые функции, тем не менее, всё ещё позволяют пользоваться null-указателями для доступов нулевого размера, но теперь это исключения из общего правила.

(согласно CAD97 — члену команды операционной семантики — такое поведение было и раньше, просто теперь оно задокументировано)

▪️Манифесты для cargo теперь поддерживают назначение флагов для rustdoc в зависимости от cfg-предикатов.

▪️rustdoc теперь не вырезает <p>-теги из сообщений о устаревании (deprecation).

▪️rustdoc теперь разделяет функции на типе в боковой панели на ассоциированные функции (которые нельзя вызвать через точку) и методы. Полезно, но терминология, на мой взгляд, неудачная: методы тоже являются ассоциированными функциями.

▪️repr(Int) меняет представление enum-ов, делая явный дискриминант всегда существующим... По крайне мере, в теории. Оказалось, что ранее для ненаселённого типа включались оптимизации раскладки, которые меняли размер таких типов в ноль, вопреки тому, что обещала документация. Теперь это пофиксили.

▪️Приватные типы в RPITIT ("return position impl trait impl trait") теперь являются ошибкой компиляции.
5👍2
Какая ирония

(справа кнопка для суммирования поста через "ИИ")
🌚12🤩2
Очень иронично получилось

4:19

Российские зеркала пакетов и DevOps-платформы: что уже работает и как это использовать в условиях блокировок
https://habr.com/ru/articles/1052330/

4:20
🤣12😁4😭2
Forwarded from Хреногубка
неплохая маскировка
😁24😭2👌1
Forwarded from ReadMe.txt (Ilya Klishin)
Лев Толстой: рисовать голых девок и жарить котлеты — тоже искусство

В 1882 году Толстой пишет письмо Николаю Александровичу Александрову, издателю и редактору «Художественного журнала». Александров попросил его изложить взгляды на искусство для журнала, а в ответ Толстой развернул целый пламенный манифест:

— Все, что ни делают праздные люди для удовлетворения праздной похоти людей, всё это безразлично называется искусством. Написать «Явление Христа народу» — искусство, и написать голых девок — тоже искусство. Написать «Илиаду» и «Нана» [1] — тоже искусство. Написать образ — искусство, и играть трепака [2] — искусство, и клауны [3] — искусство, и верхом ездить — искусство, и котлеты сделать, и волосы завивать, и платья шить — всё искусство. И совершенно прав цирюльник, называя себя художником. И ни один мудрец немец эстетик не покажет мне черту разделения между Рафаэлем и Тициановской голой женщиной [4], и между Тициановской голой женщиной и похабным стереоскопом [5]. В теории что-то очень возвышенное, но туманное называется искусством, но определения нет.


[1] «Нана» — только что вышедший тогда (1880) скандальный роман Золя о парижской куртизанке, который бесил Толстого как пример коммерческой поделки в угоду, дескать, похоти буржуазии

[2] Трепак — быстрый русский народный танец, который часто танцевали пьяный мужики у кабаков (фан фэкт — музыка, под которую все бегают в начале фильма «Один дома» это чуть искаженный трепак Чайковского)

[3] Клауны (авторское написание) — намеренная фонетическая калька (с английского), сохраненная в ПСС Толстого. Несмотря на то, что форма «клоун» была нормативной в русском языке уже с 1850-х годов, Толстой пишет так.

[4] Тициановская голая женщина — обобщенная отсылка к картинам Тициана, прежде всего, к «Венере Урбинской» (1538).

[5] Похабный стереоскоп — популярный в XIX веке оптический прибор для 3D-эффекта при просмотре двух совмещенных фотокарточек. Эротическая стереофотография была массовым жанром. Для Толстого это технологический предел деградации визуальной культуры.

Подписывайтесь на Бусти и Патреон, если хотите поддержать канал. Для патронов есть закрый чат со мной
4
Forwarded from ReadMe.txt (Ilya Klishin)
— Аристотель, «Политика», книга V, 1313b–1314a:

«Обычное для тирана дело — устранять людей, чем-либо выдающихся, и убирать с дороги людей свободомыслящих. <...> Тиран стремится к тому, чтобы ничего из того, о чем подданные говорят или что делают, не оставалось скрытым от него; чтобы повсюду были соглядатаи. <...> Тиран склонен также вести войны, чтобы подданные не имели свободного времени и постоянно нуждались в предводителе. <...> Все это можно свести к трем целям: вселить малодушие, поселить взаимное недоверие и лишить людей способности к политическому действию».
🌚5👍4
#rust

Now I can finally commit Rust code crimes legally. 😌


Source
😁13🌚5