Created attachment 3434 [details] Патч исправляющий проблему Это связано с тем, что генерируется не правильное имя принципала внутри cifs.upcall. Патч с исправлением прилагаю.
Я не удовлетворен предложенным кодом. Если уж исправлять, то стоит постараться сделать все, как надо. Преобразование 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)? Убрано в новом патче.
не актуально