<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>38389</bug_id>
          
          <creation_ts>2020-04-26 07:22:19 +0300</creation_ts>
          <short_desc>pam: can&apos;t login, pam_motd failed</short_desc>
          <delta_ts>2020-04-26 22:51:14 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>pam</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuri N. Sedunov">aris</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>aen</cc>
    
    <cc>antohami</cc>
    
    <cc>evg</cc>
    
    <cc>glebfm</cc>
    
    <cc>grizlik78</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>189439</commentid>
    <comment_count>0</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2020-04-26 07:22:19 +0300</bug_when>
    <thetext>pam-1.3.1.0.212.76916-alt1

login[4196]: pam_motd(login:session): pam_motd: failed to allocate dirname array</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189441</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 14:03:18 +0300</bug_when>
    <thetext>у pam_motd есть какие-нибудь аргументы?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189442</commentid>
    <comment_count>2</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2020-04-26 14:10:44 +0300</bug_when>
    <thetext>$ rpm -qf /etc/pam.d/login 
login-0.60-alt35.x86_64
$ sudo grep pam_motd /etc/pam.d/login 
session		optional	pam_motd.so</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189443</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 14:24:57 +0300</bug_when>
    <thetext>Понятно, ждите фикс.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189444</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 14:36:23 +0300</bug_when>
    <thetext>(In reply to Yuri N. Sedunov from comment #0)
&gt; pam-1.3.1.0.212.76916-alt1
&gt; 
&gt; login[4196]: pam_motd(login:session): pam_motd: failed to allocate dirname
&gt; array

Эта ошибка не влияет на код завершения pam_motd.
Какие-нибудь ещё ошибки были?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189445</commentid>
    <comment_count>5</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2020-04-26 14:54:02 +0300</bug_when>
    <thetext>Это всё, что есть в журнале про неудачный логин:

$ C sudo journalctl -b |grep &quot;login\[4196\]&quot;
login[4196]: pam_tcb(login:auth): Authentication passed for aris from (uid=0)
login[4196]: pam_tcb(login:session): Session opened for aris by (uid=0)
login[4196]: pam_motd(login:session): pam_motd: failed to allocate dirname array</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189446</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 15:06:45 +0300</bug_when>
    <thetext>Если убрать pam_motd из стека, логин исправляется?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189447</commentid>
    <comment_count>7</comment_count>
    <who name="Yuri N. Sedunov">aris</who>
    <bug_when>2020-04-26 15:23:02 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #6)
&gt; Если убрать pam_motd из стека, логин исправляется?

Да, конечно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189448</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 15:39:26 +0300</bug_when>
    <thetext>(In reply to Yuri N. Sedunov from comment #7)
&gt; (Ответ для Dmitry V. Levin на комментарий #6)
&gt; &gt; Если убрать pam_motd из стека, логин исправляется?
&gt; 
&gt; Да, конечно.

Несмотря на то, что pam_motd вернул PAM_IGNORE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189449</commentid>
    <comment_count>9</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2020-04-26 17:22:58 +0300</bug_when>
    <thetext>Лично у меня всё заканчивается сегфолтом

login[818262]: pam_motd(login:session): pam_motd: failed to allocate dirname array
kernel: login[818262]: segfault at 0 ip 00007f4fd766f870 sp 00007ffe0b896500 error 4 in pam_motd.so[7f4fd766f000+1000]

login[818444]: pam_motd(login:session): pam_motd: failed to allocate dirname array
kernel: login[818444]: segfault at 0 ip 00007fd40a66c870 sp 00007fff660eb2a0 error 4 in pam_motd.so[7fd40a66c000+1000]

login[845728]: pam_motd(login:session): pam_motd: failed to allocate dirname array
kernel: login[845728]: segfault at 0 ip 00007f96ffd64870 sp 00007fff70507200 error 4 in pam_motd.so[7f96ffd64000+1000]

И да, если pam_motd закомментировать, то логин проходит нормально, при возврате снова сегфолт.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189450</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 17:51:54 +0300</bug_when>
    <thetext>(In reply to Aleksey Borisenkov from comment #9)
&gt; Лично у меня всё заканчивается сегфолтом
&gt; 
&gt; login[818262]: pam_motd(login:session): pam_motd: failed to allocate dirname
&gt; array
&gt; kernel: login[818262]: segfault at 0 ip 00007f4fd766f870 sp 00007ffe0b896500
&gt; error 4 in pam_motd.so[7f4fd766f000+1000]

Да, это ожидаемо, я видел это в коде, непонятно, почему никто до вас не видел этой ошибки в логе.

&gt; И да, если pam_motd закомментировать, то логин проходит нормально, при
&gt; возврате снова сегфолт.

Спасибо, теперь всё встало на свои места.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189452</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 18:16:55 +0300</bug_when>
    <thetext>Давайте сверим часы.  Мой прогноз:

Если сделать mkdir -p /etc/motd.d /run/motd.d /usr/lib/motd.d
то сегфолт прекратится, login починится, но жалоба &quot;failed to allocate dirname array&quot; останется.

Если сделать rmdir /etc/motd.d /run/motd.d /usr/lib/motd.d; mkdir -p /run/motd.d; touch /run/motd.d/foo
то сегфолт вернётся, login сломается, но жалоба &quot;failed to allocate dirname array&quot; уйдёт.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189461</commentid>
    <comment_count>12</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2020-04-26 19:48:03 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #11)
&gt; Давайте сверим часы.  Мой прогноз:
&gt; 
&gt; Если сделать mkdir -p /etc/motd.d /run/motd.d /usr/lib/motd.d
&gt; то сегфолт прекратится, login починится, но жалоба &quot;failed to allocate
&gt; dirname array&quot; останется.
&gt; 

Починился, жалобы на &quot;failed to allocate dirname array&quot; нет, как и на сегфолт.

&gt; Если сделать rmdir /etc/motd.d /run/motd.d /usr/lib/motd.d; mkdir -p
&gt; /run/motd.d; touch /run/motd.d/foo
&gt; то сегфолт вернётся, login сломается, но жалоба &quot;failed to allocate dirname
&gt; array&quot; уйдёт.

Не починился, жалоба на &quot;failed to allocate dirname array&quot; и сегфолт есть.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189463</commentid>
    <comment_count>13</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2020-04-26 20:06:52 +0300</bug_when>
    <thetext>Аналогично, чинятся вместе и ломаются вместе, вопреки прогнозу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189464</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2020-04-26 20:17:02 +0300</bug_when>
    <thetext>(In reply to Aleksey Borisenkov from comment #13)
&gt; Аналогично, чинятся вместе и ломаются вместе, вопреки прогнозу.

OK, поскольку calloc(0, 1) != NULL, так и должно быть.
Всем спасибо за тестирование.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189471</commentid>
    <comment_count>15</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2020-04-26 22:51:14 +0300</bug_when>
    <thetext>linux-pam-1.3.1.0.223.c2c0-alt1 -&gt; sisyphus:

 Sun Apr 26 2020 Dmitry V. Levin &lt;ldv@altlinux&gt; 1.3.1.0.223.c2c0-alt1
 - v1.3.1-212-g76916913 -&gt; v1.3.1-223-gc2c0434b (closes: #38389).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>