Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср окт 18, 2017 5:55 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу Пред. 1 2
Автор Сообщение
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Пт окт 06, 2017 3:54 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1069
Siemargl писал(а):
Проблема глубже - в отсутствии валидации параметров в библиотеке.
И как ты себе эту "валидацию" представляешь?
IgorA писал(а):
Если фильтр больше чем 4кб то программа и OpenDialog теперь падать не должны. OpenDialog такой фильтр проигнорирует и запустится без фильтра.
А если я вот хочу такой большой фильтр? Не важно, зачем. Вот хочу и всё!
На мой взгляд такая проверка лишняя. Правильным является следование документации.
Дело хозяйское, конечно.
Но не думаю, что кто-то в серьёзных проектах делал бы подобные "фиксы" только из-за того, что кто-то там не правильно передал параметры.


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Пт окт 06, 2017 5:28 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
0CodErr писал(а):
А если я вот хочу такой большой фильтр? Не важно, зачем. Вот хочу и всё!
На мой взгляд такая проверка лишняя. Правильным является следование документации.

большой фильтр никак не получится, потому что в строке 199 файла opendial.mac выделяется память под фильтр (и еще какие-то внутренние библиотечные дела) фиксированного размера:
Код:
   mcall   SF_SYS_MISC,SSF_MEM_OPEN,od_com_area_name,8192,0x09

Из этих 8 кб судя по коду около 4кб используется под фильтр. Потому даже если пользователь следуя документации выделит памяти больше 4кб диалог может зависнуть, что и было устранено в ревизии
0CodErr писал(а):
Дело хозяйское, конечно.
Но не думаю, что кто-то в серьёзных проектах делал бы подобные "фиксы" только из-за того, что кто-то там не правильно передал параметры.

Мне кажется что в серьёзных проектах системная библиотека не должна виснуть из-за того что кто-то не правильно задал параметры, потому что это бросает тень на стабильность работы всей системы. А если библиотека еще при этом и сообщит как-нибудь что параметры неправильные то это будет вообще идеальный случай. Вдруг какой-нибудь зловредный хакер захочет написать вирус для слома системы, в таком случае системная библиотека которая будет копировать байты непонятно куда при неправильно переданных параметрах для него будет находкой. Я думаю что это дыра в безопасности которую нужно закрыть.


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Пт окт 06, 2017 5:33 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
0CodErr писал(а):
Siemargl писал(а):
Проблема глубже - в отсутствии валидации параметров в библиотеке.
И как ты себе эту "валидацию" представляешь?

Design by contract
https://ru.wikipedia.org/wiki/Контрактн ... ммирование


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Пт окт 06, 2017 6:37 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1069
Siemargl писал(а):
Design by contract
А какое отношение это имеет конкретно к нашему случаю?
А так всё правильно, конечно.
Каждому инструменту должно быть своё место.
Цитата:
Языки, изначально поддерживающие средства для контрактного программирования:
...
Component Pascal, Modula-2, Modula-3, Oberon-2, Oberon-07/11, Zonnon, Active Oberon, Ada 2012

IgorA писал(а):
Потому даже если пользователь следуя документации выделит памяти больше 4кб диалог может зависнуть, что и было устранено в ревизии
А, ну это, оказывается, ограничение самого диалога.
IgorA писал(а):
Мне кажется что в серьёзных проектах системная библиотека не должна виснуть из-за того что кто-то не правильно задал параметры, потому что это бросает тень на стабильность работы всей системы.
Существуют, например, системные функции, принимающие размер буфера. Ну давай, сделай валидацию :lol:
IgorA писал(а):
Вдруг какой-нибудь зловредный хакер захочет написать вирус для слома системы, в таком случае системная библиотека которая будет копировать байты непонятно куда при неправильно переданных параметрах для него будет находкой. Я думаю что это дыра в безопасности которую нужно закрыть.
Если хакер захочет, он это сделает.
Не "непонятно куда", а ровно туда, куда указано в параметрах.
Возможно, в твоём понимании неправильные параметры — это только размер, а в реальности — это вообще любой параметр.
Я могу указатель передать 0xFFFFFFFF. Будешь делать валидацию?


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Пт окт 06, 2017 8:34 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
0CodErr писал(а):
Siemargl писал(а):
Design by contract
А какое отношение это имеет конкретно к нашему случаю?
А так всё правильно, конечно.
Каждому инструменту должно быть своё место.

Тебе надо напрячься и подумать.


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Пт окт 06, 2017 9:43 pm 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 541
0CodErr писал(а):
Я могу указатель передать 0xFFFFFFFF. Будешь делать валидацию?

Если ограничить приложение для просмотра только своей директорией запуска (и адреса и диапазон ячеек памяти выделенными системой контролировать) + данные из других директорий только копировать (при просмотре других директорий), то может это будет наиболее правильно для повышения "вирусоустойчивости" системы. :)

P.S. Можно ещё ввести проверку валидности ядра системы по какой то форме сертификатов.


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Пт окт 06, 2017 11:51 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4219
Не холиварте плиз.

_________________
Через тернии к звездам


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу Пред. 1 2

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB