Bug 19544

Summary: Не работает аутентификация при вызове cifsmount с -o sec=krb5, если указывается ip-адрес или не каноническое имя сервера
Product: Sisyphus Reporter: rlz <rlz>
Component: samba-clientAssignee: Evgeny Sinelnikov <sin>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2 CC: iv, shaba, sin
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Патч исправляющий проблему
none
Новый патч none

Description rlz 2009-04-08 19:07:26 MSD
Created attachment 3434 [details]
Патч исправляющий проблему

Это связано с тем, что генерируется не правильное имя принципала внутри cifs.upcall.
Патч с исправлением прилагаю.
Comment 1 Alexander Bokovoy 2009-04-08 21:45:57 MSD
Я не удовлетворен предложенным кодом. Если уж исправлять, то стоит постараться сделать все, как надо.

Преобразование hostname делается в cifs_resolver, зачем его делать в разборе опций? Я считаю, что код c getnameinfo() необходимо добавить в cifs_resolver(), а getaddrinfo() там и так уже есть.

На каком основании базируется #define MAX_DNS_NAMELEN (15*(MAXHOSTNAMELEN + 1)+1)?
Comment 2 rlz 2009-04-09 14:26:35 MSD
Created attachment 3435 [details]
Новый патч
Comment 3 rlz 2009-04-09 14:30:10 MSD
(В ответ на комментарий №1)
> Я не удовлетворен предложенным кодом. Если уж исправлять, то стоит постараться
> сделать все, как надо.
> 
> Преобразование hostname делается в cifs_resolver, зачем его делать в разборе
> опций? Я считаю, что код c getnameinfo() необходимо добавить в cifs_resolver(),
> а getaddrinfo() там и так уже есть.
В cifs_resolver оно делается совсем по другому поводу. А именно, когда cifs просит разрезольвить имя компьютера в ip-адрес. Мой же патч делает корректным имя принципала, которое генерируется, когда cifs просит положить сессионный ключ.

> На каком основании базируется #define MAX_DNS_NAMELEN (15*(MAXHOSTNAMELEN +
> 1)+1)?
Убрано в новом патче.
Comment 4 Alexey Shabalin 2016-05-25 21:34:35 MSK
не актуально