Bug 19544 - Не работает аутентификация при вызове cifsmount с -o sec=krb5, если указывается ip-адрес или не каноническое имя сервера
Summary: Не работает аутентификация при вызове cifsmount с -o sec=krb5, если указывает...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: samba-client (show other bugs)
Version: unstable
Hardware: all Linux
: P2 major
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-08 19:07 MSD by rlz
Modified: 2016-05-25 21:34 MSK (History)
3 users (show)

See Also:


Attachments
Патч исправляющий проблему (1.54 KB, patch)
2009-04-08 19:07 MSD, rlz
no flags Details | Diff
Новый патч (1.49 KB, patch)
2009-04-09 14:26 MSD, rlz
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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
не актуально