URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5713
[ Назад ]

Исходное сообщение
"Оригинальный глюк в PERLе"

Отправлено Sergey_Green , 14-Сен-06 14:52 
Программа читает построчно огромный файл и некоторые интересные мне строки пишет в другой файл, а глюк в том что она "вылетает" при попытке записи строки номер 7200177 в другой файл, т.е. семь миллионов нормально блин читает и некоторые пишет, а на этой долбанной строчке вылетает, а в другом файле вылетает на 5030521-ой строчке, а некоторые такие же большие файлы вполне нормально читает, и выдёргевает строки.
Посмотрел я эти строки, и они вполне адекватны, меньше 100 байт каждая, тупо буквы латинского алфавита, без символов типа: # $ % ^ & * / | \ и т.п.
Кто-нибуль знает в чём косяк?
Причём вылетает с ошибкой: попытка изменения атрибута чтение/запись.
А запускаю я от root`а.
Алгоритм чтения и записи примерно такой:

while( $line=<ALLMAIL> )
{
  if (условие)
    {
    printf TRESULT $line;
    }
}

Я ваще в шоке, помагите кто знает.


Содержание

Сообщения в этом обсуждении
"Оригинальный глюк в PERLе"
Отправлено ACCA , 15-Сен-06 12:06 
>А запускаю я от root`а.
>Алгоритм чтения и записи примерно такой:
>
>while( $line=<ALLMAIL> )
>{
>  if (условие)
>    {
>    printf TRESULT $line;
>    }
>}
>
>Я ваще в шоке, помагите кто знает.

1. Не пускай от root'а разрабатываемую программу
2. Начинай программу с #!/usr/bin/perl -W (ну, или где он там у тебя?)
3. Продолжай use strict;

Программа не должна давать ни одного предупреждения без подавления оных. Когда избавишься ото всех, задай вопрос снова. Скорее всего где-то накосячил с переменными.


"Оригинальный глюк в PERLе"
Отправлено Sergey_Green , 25-Сен-06 14:59 
>>А запускаю я от root`а.
>>Алгоритм чтения и записи примерно такой:
>>
>>while( $line=<ALLMAIL> )
>>{
>>  if (условие)
>>    {
>>    printf TRESULT $line;
>>    }
>>}
>>
>>Я ваще в шоке, помагите кто знает.
>
>1. Не пускай от root'а разрабатываемую программу
>2. Начинай программу с #!/usr/bin/perl -W (ну, или где он там у
>тебя?)
>3. Продолжай use strict;
>
>Программа не должна давать ни одного предупреждения без подавления оных. Когда избавишься
>ото всех, задай вопрос снова. Скорее всего где-то накосячил с переменными.
>
////////////////////////////////////////////////////
Спасибо.
Я нашёл собаку зарытую !!!!!
Только понять не могу почему такая хeрнYa/
Надо было не printF а обычный print использовать. Кто-нибудь может объяснить почему с
printF вылетает, а с print нет!?
Я в PERLе чайник китайский, на другом обычно пишу.


"Оригинальный глюк в PERLе"
Отправлено chip , 29-Сен-06 16:00 
>>>А запускаю я от root`а.
>>>Алгоритм чтения и записи примерно такой:
>>>
>>>while( $line=<ALLMAIL> )
>>>{
>>>  if (условие)
>>>    {
>>>    printf TRESULT $line;
>>>    }
>>>}
>>>
>>>Я ваще в шоке, помагите кто знает.
>>
>>1. Не пускай от root'а разрабатываемую программу
>>2. Начинай программу с #!/usr/bin/perl -W (ну, или где он там у
>>тебя?)
>>3. Продолжай use strict;
>>
>>Программа не должна давать ни одного предупреждения без подавления оных. Когда избавишься
>>ото всех, задай вопрос снова. Скорее всего где-то накосячил с переменными.
>>
>////////////////////////////////////////////////////
>Спасибо.
>Я нашёл собаку зарытую !!!!!
>Только понять не могу почему такая хeрнYa/
>Надо было не printF а обычный print использовать. Кто-нибудь может объяснить почему

>printF вылетает, а с print нет!?
>Я в PERLе чайник китайский, на другом обычно пишу.

Элементарно Ватсон. Матчасть нужно знать. Сколько уже сервисов из-за таких писателей полегло. Формат printf:
printf(FILEHANDLE FORMAT, LIST)

и никак не
printf(FILEHANDLE, LIST)

Далее ищем в www.google.com /printf vulnerability