vine-users ML アーカイブ



[vine-users:065243] Re: Vine 2.6r4 で Kernel 2.6.4

  • From: ARAI Shun-ichi <arai@xxxxxxxxxxx>
  • Subject: [vine-users:065243] Re: Vine 2.6r4 で Kernel 2.6.4
  • Date: Thu, 01 Apr 2004 23:55:43 +0900 (JST)
あらいです。

>  Subject のように、Kernel 2.6.4 を導入してみました。

>  さて、以上の作業でとりあえず問題なく使えています。

 と書きましたが、一つ問題が発覚しました。X 使用時、スクリーンをロック
すると、正しいパスワードを入力しても戻れないようになってしまいました。
Kernel 2.4 で立ち上げると問題ありません。

 Web で調べたところ、以下のメールを見つけました。

http://www.ussg.iu.edu/hypermail/linux/kernel/0307.2/0258.html

 どうも、PAM の問題のようですね。
 というわけで、このスレッドの他のメールからパッチを見つけて、それを参
考に Vine の PAM(pam_0.75-39vl1.1)を修正してみたところ、正しく復帰で
きるようになりました。
 作成したパッチを添付します。


 話は変わりますが、前のメール([vine-users:065046])に書き忘れたこと
がありました。
 カーネルの make の際、アセンブルでエラーが出ました。as(binutils)が
古かったためのようです。新しい binutils(2.14)を持ってきて使用したら、
make できました。

-- 
新井 俊一 <ARAI Shun-ichi>
arai@xxxxxxxxxxx
diff -uNr Linux-PAM-0.75/modules/pam_pwdb/support.-c Linux-PAM-0.75.sigchld2/modules/pam_pwdb/support.-c
--- Linux-PAM-0.75/modules/pam_pwdb/support.-c	2004-04-01 23:01:55.000000000 +0900
+++ Linux-PAM-0.75.sigchld2/modules/pam_pwdb/support.-c	2004-04-01 23:05:43.000000000 +0900
@@ -362,7 +362,7 @@
     /* save the address of the old SIGCHLD handler, because if the calling
        application set a handler, we need to disable it so that we can reap
        the helper after it quits */
-    sighandler = signal(SIGCHLD, SIG_IGN);
+    sighandler = signal(SIGCHLD, SIG_DFL);
 
     /* fork */
     child = fork();
diff -uNr Linux-PAM-0.75/modules/pam_unix/support.c Linux-PAM-0.75.sigchld2/modules/pam_unix/support.c
--- Linux-PAM-0.75/modules/pam_unix/support.c	2004-04-01 23:01:56.000000000 +0900
+++ Linux-PAM-0.75.sigchld2/modules/pam_unix/support.c	2004-04-01 23:06:02.000000000 +0900
@@ -537,7 +537,7 @@
     /* save the address of the old SIGCHLD handler, because if the calling
        application set a handler, we need to disable it so that we can reap
        the helper after it quits */
-    sighandler = signal(SIGCHLD, SIG_IGN);
+    sighandler = signal(SIGCHLD, SIG_DFL);
 
     /* fork */
     child = fork();