Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт июн 21, 2018 7:31 pm

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




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

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


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

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 765
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
Сообщения: 303
0CodErr писал(а):
Siemargl писал(а):
Проблема глубже - в отсутствии валидации параметров в библиотеке.
И как ты себе эту "валидацию" представляешь?

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


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

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1276
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
Сообщения: 303
0CodErr писал(а):
Siemargl писал(а):
Design by contract
А какое отношение это имеет конкретно к нашему случаю?
А так всё правильно, конечно.
Каждому инструменту должно быть своё место.

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


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

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

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

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


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

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

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


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Вт май 22, 2018 10:58 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4450
Появился серьезный баг в ночных сборках:
1. любым способом запускаем OpenDial
2. нажимаем клавишу End

=> падение программы


Вложения:
opendial bug.png
opendial bug.png [ 36.21 КБ | 264 просмотра ]

_________________
Через тернии к звездам
Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Вт май 22, 2018 11:07 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1091
Проблема есть, но несколько иная. Opendialog падает при большом количестве файлов (число не сажу, но например корень рамдиска подходит). Падает в том числе и при простом скроллинге.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Чт май 24, 2018 9:20 am 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1276
Leency писал(а):
Появился серьезный баг
punk_joker писал(а):
падает при большом количестве файлов
Когда появился? Найдите проблемную ревизию тогда или это всегда было(я не замечал такого раньше)?


Вернуться к началу
 Заголовок сообщения: Re: OpenDialog
СообщениеДобавлено: Чт май 24, 2018 11:17 am 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1276
punk_joker писал(а):
Opendialog падает при большом количестве файлов (число не сажу, но например корень рамдиска подходит).
Всё же, наверное, проблема не в количестве файлов(создал 10000 файлов с помощью GenFiles viewtopic.php?f=9&t=3294)
Спойлер: Показать
Вложение:
1.PNG
1.PNG [ 72.19 КБ | 221 просмотр ]


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

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


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

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


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

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