summaryrefslogtreecommitdiff
path: root/sysutils/screen49/files/patch-attacher.c
blob: 0f89189898e390b591a91314322b6b0e267c90a0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
--- attacher.c.orig	2003-09-08 07:24:48.000000000 -0700
+++ attacher.c	2011-01-02 21:42:39.547897531 -0800
@@ -662,7 +662,7 @@
   printf("\n");
 
   prg = getenv("LOCKPRG");
-  if (prg && strcmp(prg, "builtin") && !access(prg, X_OK))
+  if (prg && (strcmp(prg, "builtin") || strcmp(prg,"builtin-passwd")) && !access(prg, X_OK))
     {
       signal(SIGCHLD, SIG_DFL);
       debug1("lockterminal: '%s' seems executable, execl it!\n", prg);
@@ -676,7 +676,11 @@
           setuid(real_uid);	/* this should be done already */
 #endif
           closeallfiles(0);	/* important: /etc/shadow may be open */
-          execl(prg, "SCREEN-LOCK", NULL);
+          if (strcmp(prg,"builtin-passwd"))
+            /* use system passsword for lock */
+            execl(prg, "SCREEN-LOCK", "-p", "-n", NULL);
+          else
+            execl(prg, "SCREEN-LOCK", NULL);
           exit(errno);
         }
       if (pid == -1)