The OpenNET Project / Index page

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



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

Оглавление

Переполнение буфера в OpenSSL, эксплуатируемое при проверке сертификатов X.509 , opennews (??), 01-Ноя-22, (0) [смотреть все]

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


35. "Переполнение буфера в OpenSSL, эксплуатируемое при проверке ..."  –1 +/
Сообщение от Аноним (35), 01-Ноя-22, 21:13 
> ненастоящие Сишники

Что-то всё чаще и чаще мелькает бубнеж этой мантры. Не надоело?

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

87. "Переполнение буфера в OpenSSL, эксплуатируемое при проверке ..."  –1 +/
Сообщение от n00by (ok), 02-Ноя-22, 09:47 
>> ненастоящие Сишники
> Что-то всё чаще и чаще мелькает бубнеж этой мантры. Не надоело?

Смотрите комментарий над проблемной функцией:


/*-
* Pseudocode:
*
* function ossl_punycode_decode
*  let n = initial_n
*  let i = 0
*  let bias = initial_bias
*  let output = an empty string indexed from 0
*  consume all code points before the last delimiter (if there is one)
*    and copy them to output, fail on any non-basic code point
*  if more than zero code points were consumed then consume one more
*    (which will be the last delimiter)
*  while the input is not exhausted do begin
*    let oldi = i
*    let w = 1
*    for k = base to infinity in steps of base do begin
*      consume a code point, or fail if there was none to consume
*      let digit = the code point's digit-value, fail if it has none
*      let i = i + digit * w, fail on overflow
*      let t = tmin if k <= bias {+ tmin}, or
*              tmax if k >= bias + tmax, or k - bias otherwise
*      if digit < t then break
*      let w = w * (base - t), fail on overflow
*    end
*    let bias = adapt(i - oldi, length(output) + 1, test oldi is 0?)
*    let n = n + i div (length(output) + 1), fail on overflow
*    let i = i mod (length(output) + 1)
*    {if n is a basic code point then fail}
*    insert n into output at position i
*    increment i
*  end
*/

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

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

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




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

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