Summary: | Не работает аутентификация при вызове cifsmount с -o sec=krb5, если указывается ip-адрес или не каноническое имя сервера | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | rlz <rlz> | ||||||
Component: | samba-client | Assignee: | 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: |
|
Я не удовлетворен предложенным кодом. Если уж исправлять, то стоит постараться сделать все, как надо. Преобразование hostname делается в cifs_resolver, зачем его делать в разборе опций? Я считаю, что код c getnameinfo() необходимо добавить в cifs_resolver(), а getaddrinfo() там и так уже есть. На каком основании базируется #define MAX_DNS_NAMELEN (15*(MAXHOSTNAMELEN + 1)+1)? Created attachment 3435 [details]
Новый патч
(В ответ на комментарий №1) > Я не удовлетворен предложенным кодом. Если уж исправлять, то стоит постараться > сделать все, как надо. > > Преобразование hostname делается в cifs_resolver, зачем его делать в разборе > опций? Я считаю, что код c getnameinfo() необходимо добавить в cifs_resolver(), > а getaddrinfo() там и так уже есть. В cifs_resolver оно делается совсем по другому поводу. А именно, когда cifs просит разрезольвить имя компьютера в ip-адрес. Мой же патч делает корректным имя принципала, которое генерируется, когда cifs просит положить сессионный ключ. > На каком основании базируется #define MAX_DNS_NAMELEN (15*(MAXHOSTNAMELEN + > 1)+1)? Убрано в новом патче. не актуально |
Created attachment 3434 [details] Патч исправляющий проблему Это связано с тем, что генерируется не правильное имя принципала внутри cifs.upcall. Патч с исправлением прилагаю.