The OpenNET Project / Index page

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



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

Оглавление

Обновление Chrome 87.0.4280.141 с исправлением уязвимостей , opennews (??), 07-Янв-21, (0) [смотреть все]

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


15. "Обновление Chrome 87.0.4280.141 с исправлением уязвимостей "  +2 +/
Сообщение от Аноним (15), 07-Янв-21, 11:47 
... и она рвётся_
Ответить | Правка | Наверх | Cообщить модератору

17. "Обновление Chrome 87.0.4280.141 с исправлением уязвимостей "  +/
Сообщение от Fracta1L (ok), 07-Янв-21, 13:28 
Потому что Леголас забыл проверить тетиву на границы прочности
Ответить | Правка | Наверх | Cообщить модератору

33. "Обновление Chrome 87.0.4280.141 с исправлением уязвимостей "  +1 +/
Сообщение от птах (?), 07-Янв-21, 17:09 
Ты за свою жизнь хоть что-то на границу проверил?

Давай умник расскажи мне как этот код не вывалится

use std::env;

fn get_data(i: i8) -> i8 {

    let xs: [i8; 5] = [1, 2, 3, 4, 5];
    
    let n: usize = i as usize;
    
    return xs[n];
    
}

fn main () {

    let args: Vec<String> = env::args().collect();
    let index: i8 = args[1].parse::<i8>().unwrap();
    println!("N element of the array: {}", get_data(index));
    
}

thread 'main' panicked at 'index out of bounds: the len is 5 but the index is 6', test.rs:9:12
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

Ой, как так-то? раст автоматически не защитил?

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

34. "Обновление Chrome 87.0.4280.141 с исправлением уязвимостей "  +1 +/
Сообщение от птах (?), 07-Янв-21, 17:14 
Если такой код вызовит внешняя программа ожидающая ответа от этого бреда, по цепочке к чему это приведёт .....

Предотвращая сопли и слюни растоманов скажу. Это поведение ничем не отличается от поведенеия в C++ при использовании .at() для всяких массивов. out of range будет иключение. Так что хватит уже сопливить как маленькие дети и идите что-то почитайте.

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

47. "Обновление Chrome 87.0.4280.141 с исправлением уязвимостей "  +/
Сообщение от Wilem82 (?), 07-Янв-21, 18:47 
Как не защитил, когда защитил? Он же тебе прямо пишет, что обнаружена вот эта ошибка. Доступ в не ту память он не дал.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

51. "Обновление Chrome 87.0.4280.141 с исправлением уязвимостей "  +1 +/
Сообщение от птах (?), 07-Янв-21, 20:37 
А ты внимательнее почитай. Там для одарённых сказано что 1) этот когд вызывает другая программа через командную строку и ожидает адекватного сообщения а не сообщения об ошибке. 2) это ничем не отличается от поведения C++ .at()
Ответить | Правка | Наверх | Cообщить модератору

59. "Обновление Chrome 87.0.4280.141 с исправлением уязвимостей "  +/
Сообщение от Wilem82 (?), 08-Янв-21, 00:39 
> А ты внимательнее почитай. Там для одарённых сказано что 1) этот когд
> вызывает другая программа через командную строку и ожидает адекватного сообщения а
> не сообщения об ошибке. 2) это ничем не отличается от поведения
> C++ .at()

Где сказано? Какая программа вызывает? Ничего не понял.  Суть программы в том, что ты пытаешься из массива взять несуществующий элемент. Раст это замечает и сообщает, что ты просил по индексу 6, а элементов всего 5.  Чё не так-то?  Вот если бы оно сегфолтнулось - можно было бы сказать, что защиты нету. Не понимаю, чего ты ждёшь от Раста-то.  Хочешь обрабатывать эту ситуацию - не юзай [], юзай get(), который тебе вернёт Option<T>.

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

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

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




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

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