[sisyphus] Re: u: xrcode-1.0-alt1
Stanislav Ievlev
=?iso-8859-1?q?inger_=CE=C1_altlinux=2Eorg?=
Чт Май 29 16:45:12 MSD 2003
On Thu, May 29, 2003 at 12:45:49PM +0400, Yura Zotov wrote:
> On Thu, May 29, 2003 at 11:45:22AM +0400, Stanislav Ievlev wrote:
> > On Tue, May 27, 2003 at 02:57:25PM +0400, Yura Zotov wrote:
> > > On Tue, May 27, 2003 at 02:28:22PM +0400, Dmitry V. Levin wrote:
> > > > On Tue, May 27, 2003 at 02:14:26PM +0400, Yura Zotov wrote:
> > > > > On Tue, May 27, 2003 at 02:05:33PM +0400, Dmitry V. Levin wrote:
> > > > > > On Tue, May 27, 2003 at 12:48:14PM +0300, Michael Shigorin wrote:
> > > > > > > On Mon, May 26, 2003 at 11:58:16PM +0400, Dmitry V. Levin wrote:
> > > > > > > > > PS: в recode есть некрасивость имени использующегося в одном
> > > > > > > > > codepath tmpnam(3), но патчить это сейчас уже совсем лень :-(
> > > > > > > > Зачем собирать пакеты, в которых заведомо есть block-баги?
> > > > > > > > Или это по принципу "работает и ладно"?
> > > > > > >
> > > > > > > Это по принципу "так, а теперь кто отточил умение до автоматизма
> > > > > > > -- подскажите, что с _этим_ делать". Потому что в 22:46:00 меня,
> > > > > > > очевидно, более чем на прогулку по manpages не хватило.
> > > > > > >
> > > > > > > Это раз. Два -- IMO это minor/major, но никак не block bug.
> > > > > >
> > > > > > Любое использование tmpnam(3)&Co есть block bug, если только я не сказал
> > > > > > обратного.
> > > > >
> > > > > Тогда вопрос. А что вместо него можно использовать? mkstemp?
> > > >
> > > > Только mkstemp(3)/mkdtemp(3).
> > > >
> > > > Бывают исключения, но их нужно оговаривать особо.
> > >
> > > Я сейчас поглядел код ROOT на предмет tmpnam и обнаружил места,
> > > которые я не знаю, как перевести на mkstemp. Например:
> > >
> > > tmpfilename = tmpnam(0);
> > > ofstream file1.open( tmpfilename);
> > А в чём собственно проблема?
> > В Сизифе есть куча програм исправленных на предмет tmpnam.
> > >
>
> Проблемы две:
>
> 1. Я никогда ничего не патчил на предмет tmpnam, поэтому не
> представляю сути проблемы использования tmpnam.
Проблема состоит в race "Time of check time of use". Между тем как
программа "получила" имя и открывает файл с этим именем вмечто оного файла
могут "подсунуть" что угодно вплоть до системных файлов.
mkstemp не только придумывает имя, но и сразу открывает файл.
Кроме того не стоит создавать временный файл всегда в /tmp. Лучше в
каталоге пользователя (о чём говорит соотв. переменная среды)
>
> 2. Пакет ROOT кроссплатформенный. В том числе используется и в
> windows. Насколько я понял, mkstemp пришла из BSD и определена
> с недавнего времени в POSIX. В windows этой функции, наверное,
> нет. В связи с чем, я вообще не знаю, как этот момент обходить,
> чтобы сделать нормальный патч, который бы приняли разработчики
> ROOT.
>
Поскольку Сизиф не BSD и не Window , то можно на первых порах не ломать голову
о кросс-платформенности.
> Вы говорите много программ в Сизифе... А как их найти?
посмотрите pinfo. К счастью количество патчей уменьшается день ото дня.
>
> А можно не пропатченный ROOT в Daedalus/unsupported положить?
>
> --
> Юрий А. Зотов
> _______________________________________________
> Sisyphus mailing list
> Sisyphus на altlinux.ru
> http://altlinux.ru/mailman/listinfo/sisyphus
Подробная информация о списке рассылки Sisyphus