LINUX.ORG.RU

Libc


8

0

Всего сообщений: 6

Glibc 2.34

Группа Open Source

Состоялся релиз библиотеки Glibc 2.34.

Некоторые изменения:

  • внесена вся функциональность библиотек libpthread, libdl, libutil, libanl. Теперь для их использования нет необходимости в флагах -lpthread, -ldl, -lutil, -lanl;
  • добавлена поддержка 64-битного time_t там, где традиционно используется 32-битный time_t;
  • добавлена функция _Fork, async-signal-safe-замена fork. На данный момент эта функция является расширением GNU;
  • добавлена функция timespec_getres;
  • для Linux добавлена функция execveat. Она используется в реализации fexecve без требования примонтированного /proc;
  • для Linux добавлена функция close_range, которая позволяет эффективно закрыть диапазон файловых дескрипторов;
  • добавлена функция closefrom, которая закрывает все файловые дескрипторы, которые больше или равны заданному значению. Эта функция является расширением GNU;
  • отладочные возможности malloc вынесены из главной библиотеки в библиотеку libc_malloc_debug.so.

Подробности

 ,

one_question
()

Релиз Glibc 2.22

Группа GNU's Not Unix

Состоялся релиз Glibc 2.22.

Основные изменения:

  • Таблица символов и ctype обновлена до спецификации Unicode 7.0.0. За новый скрипт генератора скажем спасибо Pravin Satpute и Mike Fabian из Red Hat! Это изменение должно быть заметно пользователю, например исправление бага 17998.
  • Добавлена библиотека libmvec для работы с векторами. В ней есть следующие векторные x86_64-операции: cos, cosf, sin, sinf, sincos, sincosf, log, logf, exp, expf, pow, powf. Библиотека зависит от GCC ≥4.9, параметров сборки -fopenmp и -ffast-math, и оптимизации ≥-O1. Shared-библиотека libmvec.so линкуется с параметром -lm (нет необходимости указывать -lmvec).
  • Новая реализация fmemopen для совместимости с POSIX. Это нововведение исправляет множество многолетних багов: 6544, 11216, 12836, 13151, 13152 и 14292. Старая реализация не удалена для совместимости со старыми бинарными файлами.
  • Header-файл <regexp.h> объявлен устаревшим, и будет удалён в следующем релизе. При использовании теперь выдаётся Warning. Разработчикам программ необходимо обновить код приложений.

Малопопулярные архитектуры CPU

  • Для архитектуры s390 добавлен опрос информации о кэше с помощью функции sysconf(). Например с аргументом _SC_LEVEL1_ICACHE_SIZE.
  • Оптимизации TLS для архитектур powerpc и powerpc64. Это оптимизации дескрипторов LD и GD, ранее существовавшие для x86 и x86_64. Для задействования необходимы binutils ≥2.24
  • Для архитектуры SPARC 32-bit исправлен ABI sigaction, который был непреднамеренно сломан в Glibc 2.20. Теперь ABI работает как в Glibc 2.19. Бинарники, собранные с Glibc 2.20-2.21, необходимо пересобрать.
  • Native Client портирован на ARMv7-A (--host=arm-nacl). Скажем спасибо Roland McGrath (Google)!

Исправления ошибок

  • Исправлено переполнение буфера через gethostbyname_r, а также связанных с ней функций, осуществляющих запросы DNS. (CVE-2015-1781)
  • Исправлена ошибка, при которой NSS сообщает внутреннее состояние getXXent и getXXbyYY в одну и ту же базу данных, что может привести к состоянию denial-of-service в некоторых приложениях (CVE-2014-8121)
  • Улучшения "защиты от дурака" в парсер файлов timezone (на случай использования файлов, созданных кустарно). А именно исправлено возможное переполнение буфера при использовании переменных tzh_ttisstdcnt и tzh_ttisgmtcnt, а также переполнение стека при использовании огромного Data-файла Zone.
  • Исправлено множество других ошибок.

>>> Подробности

 ,

ZenitharChampion
()

musl libc 1.0

Группа Open Source

Сегодня вышла версия 1.0 musl, свободной реализации стандартной библиотеки языка C. musl реализует стандарты ISO C и Posix, плюс набор расширений используемых в системах на базе Linux. Код распространяется под лицензией MIT (начиная с версии 0.9.). Основные изменения:

( читать дальше... )

>>> Подробности

 ,

encyrtid
()

Релиз GNU C Library 2.19

Группа GNU's Not Unix

Стало известно о выходе новой версии системной библиотеки glibc — 2.19.

Некоторые изменения:

  • Исправления ошибок, множество их!
  • Публичные заголовочные файлы больше не используют спецификаторов __unused и __block.
  • Бинарные файлы локализации теперь зависят только от порядка байтов (endianness) системы, где они были созданы.
  • В утилиту localedef добавлены флаги --big-endian и --little-endian для возможности кросс-генерирования файлов локализации на другие системы.
  • Добавлен новый макрос _DEFAULT_SOURCE для включения поведения по умолчанию для объявлений в заголовочных файлах. Например, это нужно тогда, когда другие макросы/опции компилятора отключают некоторые из этих объявлений.
  • Макрос _BSD_SOURCE теперь закрывает доступ к BSD интерфейсам, конфликтовавшим с POSIX. Также была удалена и так пустая библиотека libbsd-compat.
  • Добавлена предварительная документация про многопоточность, асинхронные сигналы.

GNU C Library полностью соответствует стандартам ISO C11 и POSIX.1-2008 и лежит в основе многих дистрибутивов Linux.

>>> Скачать

 ,

do0dlez
()

Уязвимость в стандартной функции glob() как угроза для FTP-серверов

Группа Безопасность

Сайт SecurityReason сообщает об обнаружении опасной ошибки в реализации библиотечной функции glob() из стандартной библиотеки языка C (libc) на множестве платформ.

Эта функция предназначена для получения списка файлов, чьи имена удовлетворяют заданному шаблону. Ошибка заключается в том, что ограничение на выдачу функции, задаваемое переменной GLOB_LIMIT, не действует в случае задания некорректных путей в шаблоне. Такими некорректными значениями могут быть, например, «*/../*/../*foo» или «{..,..,..}/*/{..,..,..}/*bar». При этом вызов функции glob() может исчерпать всю доступную память процесса.

Особенную опасность данная ошибка представляет для (S)FTP-серверов, особенно с разрешенным анонимным доступом. Очевидно, запрос на листинг файлов с вышеприведенной маской приводит к скорому отказу в обслуживании FTP-сервера.

Уязвимости подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7, NetBSD 5.0.2, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC. Уязвимость пока что устранена только в NetBSD; компании и сообщества, занимающиеся разработкой вышеперечисленных (за исключением NetBSD) операционных систем, пока не дают никакой информации; именно поэтому уязвимость классифицируется как «0-day». Сообщается также, что vsftpd не подвержен уязвимости.

>>> Подробности

 , , ,

Kuka
()

Начат проект создания новой реализации libc

Группа Linux General

Стартовал проект libposix, нацеленный на создание написанной с нуля альтернативной кроссплатформенной реализации стандартной системной библиотеки libc.

Henrique Almeida, создатель библиотеки Libposix, поставил перед собой цель не зацикливаться на одной платформе и создать унифицированное для всех Unix систем решение, одновременно поддерживающее Linux, *BSD и прочие системы.

Задачами этого проекта являются:

  • Строгое соответствие стандарту POSIX 2008
  • Кросплатформеннность и использование во всех *nix-системах
  • Отсутствие поддержки чего-либо, что выходит за рамки POSIX 2008 (т.е. без поддержки расширений и устаревшего кода)
  • Ясность и документированность кода

Так же, как одну из задач, разработчики ставят «легкость поддержки», что является намеком на сложности, возникающие при взаимодействии с разработчиками libc. Проект уже предложен к развитию разработчикам Ubuntu.

>>> Подробности

 ,

Pavval
()