Linux | Линукс
Linux | Линукс
1 667 подписчиков · @linux0ids
К каналу →
🐧Обсудить в Чате Linux
Читать далее →
588
Eternal: запуск Linux на виртуальной машине с одной инструкцией Subleq для хранения ПО на 1000 лет Разработчик Андриан Кейбл представил проект Eternal Software Initiative, цель ко…
Читать далее →
535

Из ядра Linux выпилили strncpy 19 июня Линус Торвальдс принял merge, окончательно удаливший из ядра функцию strncpy.

Из ядра Linux выпилили strncpy

19 июня Линус Торвальдс принял merge, окончательно удаливший из ядра функцию strncpy. На это ушло шесть лет работы, 362 коммита и 70 разработчиков. Пример того, почему просто заменить небезопасную функцию в C вовсе не просто.

Буква «n» в названии создаёт иллюзию контроля: strncpy(dst, src, n) копирует максимум n байт. Однако документация предупреждает, что это не строковая функция, она создаёт null-padded character sequence. Появившись в AT&T Unix около 1979 года для работы с именами файлов в директориях (поля фиксированной ширины), strncpy десятилетиями использовалась в обычном коде как безопасная замена strcpy. Но если длина источника >= n, терминальный \0 не ставится, и любой strlen или printk улетит за буфер. Если источник короче n, то весь остаток до n забивается нулями, что порождает ненужную нагрузку.

Заменить strncpy одной функцией невозможно: под разные намерения нужен разный инструмент:
strscpy() — для нормальной строки с терминатором.
strscpy_pad() — то же с обнулением хвоста.
strtomem() / strtomem_pad() — для полей фиксированной ширины без терминатора.
memcpy_and_pad() — для bounded-копии из источника, который может не иметь завершающего нуля.
memtostr() / memtostr_pad() — обратный случай.
memcpy() — если это вообще не строка.

Один и тот же вызов strncpy требовал ручного чтения контекста: строка это или бинарное поле, нужен ли ноль, нужен ли padding. 362 раза, и каждый раз разное решение.

В вашей кодовой базе strncpy, скорее всего, всё ещё живёт как безопасный вариант. Это не баг в трекере, это код, который надо перечитать. И главная работа будет не в замене функции, а в том, чтобы понять, что лежит в каждом буфере. Ядру на это понадобилось шесть лет и 70 человек — на API, который выглядел как безопасный десятилетиями.

🐧Обсудить в Чате Linux
erid: 2W5zFK2sT6R Почему одни ИТ-специалисты быстро растут в карьере, а другие годами остаются на одном уровне?🤔 Важный фактор — насмотренность. Следите за новостями отрасли и зн…
Читать далее →
187
Другие главы канала «Linux | Линукс»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 25.06.2026
erid: 2W5zFK2sT6R Почему одни ИТ-специалисты быстро растут в карьере, а другие …
👁 187 просмотров
Глава от 24.06.2026
Eternal: запуск Linux на виртуальной машине с одной инструкцией Subleq для хране…
👁 535 просмотров
Глава от 23.06.2026
🐧Обсудить в Чате Linux
👁 588 просмотров
Глава от 23.06.2026
Вышел systemd 261. Ключевые новшества: systemd-sysinstall (простой инсталлятор н…
👁 657 просмотров
Глава от 22.06.2026
Однажды увидев, вы не сможете это развидеть. Официальный логотип Fedora имеет не…
👁 688 просмотров
Глава от 22.06.2026
🐧Обсудить в Чате Linux
👁 762 просмотров
Глава от 21.06.2026
Bcachefs больше не экспериментальная: выпуск 1.38.6 с оптимизациями до 16.5 ГБ/с…
👁 738 просмотров
Глава от 21.06.2026
🐧Обсудить в Чате Linux
👁 768 просмотров
Глава от 20.06.2026
Valve выпустила SteamOS 3.8 с KDE Plasma 6.4 на Wayland, планировщиком LAVD и по…
👁 810 просмотров

Популярные посты канала «Linux | Линукс»

🐧Обсудить в Чате Linux
👁 5 237 просмотров
Gentoo выпустил системный образ с ядром GNU Hurd Проект Gentoo опубликовал экспериментальный образ с ядром GNU Hurd, а также скрипты для са…
👁 5 232 просмотров
Каждый раз, когда анонсируют новый дистрибутив Linux
👁 5 205 просмотров
Выпуск Archinstall 4.0 Консольный интерфейс переведён с curses на библиотеку textual, так внешний вид стал современнее, а код проще поддерж…
👁 5 156 просмотров
Euro-Office: европейский форк ONLYOFFICE с удалённым логотипом и спором о лицензии Группа европейских компаний и организаций (Nextcloud, IO…
👁 5 122 просмотров
Атака на PyPI-пакет Telnyx Злоумышленники скомпрометировали учётную запись сопровождающего популярного PyPI-пакета telnyx (756 тысяч загруз…
👁 5 078 просмотров
Мобильная платформа ALT Mobile 11.0, построенная на технологиях GNOME Компания «Базальт СПО» представила ALT Mobile 11.0 — мобильную платфо…
👁 5 076 просмотров
Лидером Debian впервые станет женщина. Вопрос возраста в Debian пока открыт В этом году на пост лидера проекта Debian претендует только оди…
👁 5 053 просмотров
btw
👁 5 012 просмотров
Лидер Ubuntu MATE уходит из проекта Мартин Вимпрес, сооснователь и лидер Ubuntu MATE, объявил, что его участие в проекте подходит к концу. …
👁 4 990 просмотров
I live on Arch, btw 🐧Обсудить в Чате Linux
👁 4 986 просмотров
🐧Обсудить в Чате Linux
👁 4 980 просмотров
Little Snitch наконец вышел на Linux (с eBPF и веб-интерфейсом) Вышла первая Linux-версия легендарного межсетевого экрана для приложений Li…
👁 4 952 просмотров
Ubuntu 26.10: ntpd-rs на Rust вместо chrony и резкое сокращение поддержки файловых систем в /boot В осеннем выпуске Ubuntu 26.10 планируют …
👁 4 947 просмотров
Спасибо Гуглу за такую функцию комбинации смайлов 😁 Gnome 🩵 🐧Обсудить в Чате Linux
👁 4 947 просмотров
За неделю выявили критические уязвимости в GStreamer, CUPS, wolfSSL, OpenSSL, OpenClaw, Nix и ядре Linux ▪️ В GStreamer (до 1.28.2) три пер…
👁 4 945 просмотров
SDL запретила AI-код: форки Vim тоже избавляются от LLM-патчей Разработчики библиотеки SDL приняли правила, запрещающие приём изменений, сг…
👁 4 916 просмотров
Red Hat сворачивает инженерное подразделение в Китае и переносит команды в Индию Компания уволила несколько сотен сотрудников (по разным да…
👁 4 893 просмотров
Arch Linux перевёл iptables на бэкенд nft по умолчанию Разработчики Arch Linux объявили, что теперь по умолчанию задействован пакет iptable…
👁 4 878 просмотров
FreeBSD Foundation запустила проект по тестированию на ноутбуках Некоммерческая организация FreeBSD Foundation представила инициативу по сб…
👁 4 871 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@canalmaxone
AntiCloudMod
AntiCloudMod — сообщество для тех, кто ценит свободу общения без облачной цензуры. Здесь обсуждают альтернативные мессенджеры, инструменты для приватности и децентрализов…
👥 384 917 · -390/7д
@WylsacomRed
Wylsacom Red
Официальный канал Wylsacom в Max. Тут всё про технологии и жизнь в ногу со временем! Номер заявления для регистрации в РКН: № 6979154178 Розыгрыши: kichaev@wylsacom.med…
👥 155 095 · +710/7д
@BelgorodDRONE
Информация БПЛА Белгород, Белгородский район
Канал «Информация БПЛА Белгород, Белгородский район» в мессенджере Макс предлагает свежие новости и подробности о беспилотных летательных аппаратах в Белгородском регионе…
👥 140 516 · +1 993/7д
@TikTokModCloud
TikTokModCloud
Официальные обновления стабильного мода TikTok Чат: https://clck.ru/3S6mVh По рекламе: https://iimax.ru/dim4ugan
👥 86 867 · +3 815/7д
@na_kruchok
ГЛЕНТ | МЕМЫ
Глент мемы Это фан-сообщество, созданное преданными поклонниками для поддержки творчества Глента. Данный канал НЕ является официальным и ведется фанатом. Биржа: telega…
👥 57 798 · +12 956/7д
@hitech
Hi-Tech
Оперативные новости, обзоры гаджетов, собственное видео, трансляции мировых анонсов и мероприятий По вопросам сотрудничества и размещения рекламы i.ostapenko@corp.mail.r…
👥 53 099 · -118/7д
🏷 Темы и теги
#командная строка #системное администрирование #linux #дистрибутивы #opensource #Технологии
📋 О канале Linux | Линукс
Погружение в мир Linux: от первых шагов в командной строке до тонкостей системного администрирования. Канал для тех, кто ценит открытый код и хочет освоить дистрибутивы на практике. Новости, туториалы, советы по оптимизации — всё, чтобы сделать работу с Linux эффективной и увлекательной.
🔍 Архив всех постов Макс
Поиск по 9,473,725 постам из 201,239 каналов
Подключить за 490 ₽/мес →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «Linux | Линукс» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.