[samba] Ошибка чтения пустого каталога

Alexander Bokovoy a.bokovoy на sam-solutions.net
Чт Апр 1 12:23:24 MSD 2004


On Thu, Apr 01, 2004 at 01:14:29PM +1000, Oleg Gints wrote:
> >>Под XP такой ошибки нет, но там запросы другие.
> >>
> >>Интересно, эта ошибка еще у кого-нибудь наблюдается?
> >
> >Не видел. Интересно, не связано ли это с тем же источником, который
> >создает проблему и при использовании smbfs в 2.4? Там тоже ошибка в
> >обработке TRANS2, правда в коде smbfs.
> 
> Разобрался в чем дело, только как корректно исправить ситуацию - не знаю.
> Дело связано с изменениями в trans2.c:
> 
> функция call_trans2findnext
> 
>         if (total_params < 12)
>                 return(ERROR_DOS(ERRDOS,ERRinvalidparam));
> 
>         *mask = *directory = *resume_name = 0;
> 
> -       srvstr_pull(inbuf, resume_name, params+12, sizeof(resume_name), 
> -1, STR_TERMINATE);
> +       srvstr_get_path(inbuf, resume_name, params+12, 
> sizeof(resume_name), -1, STR_TERMINATE, &ntstatus);
> +       if (!NT_STATUS_IS_OK(ntstatus)) {
> +               return ERROR_NT(ntstatus);
> +       }
> 
>         DEBUG(3,("call_trans2findnext: dirhandle = %d, max_data_bytes = 
> %d, maxentries = %d, \
> 
> Ощибка происходит при вызове srvstr_get_path (файл reply.c)
> в которой далее вызывается функция check_path_syntax(dest, tmppath)
> В качестве параметра передается строка 0x2E 0x2E \0, т.е. то,
> что было запрошено со сторны клиента Win ME - FIND_NEXT2("..")
> 
> if ((s[0] == '.') && (s[1] == '.') && (IS_DIRECTORY_SEP(s[2]) || s[2] == 
> '\0'))
> успешно эту стороку отлавливает, и далее срабатывает это условие
> if (d == destname) { 
> 
>     return NT_STATUS_OBJECT_PATH_SYNTAX_BAD; 
> 
> }
> и клиент получает ошибку 161 - неверное имя каталога.
Технически правильный ответ.

> Осталось выяснить, исправлена ли эта ситуация в последней версии
> самбы.
Это и есть последняя версия Самбы.
-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/


Подробная информация о списке рассылки Samba