On Mon, Jun 23, 2008 at 09:40:32PM +0200, Matthias Kilian wrote:
> On Mon, Jun 23, 2008 at 02:31:55PM +0200, Tobias Ulmer wrote:
> > Index: patches/patch-attacher_c
> > ===================================================================
> > RCS file: /cvs/ports/misc/screen/patches/patch-attacher_c,v
> > retrieving revision 1.1
> > diff -u -r1.1 patch-attacher_c
> > --- patches/patch-attacher_c        14 Oct 2003 23:05:28 -0000      1.1
> > +++ patches/patch-attacher_c        22 Jun 2008 12:08:32 -0000
> > @@ -1,6 +1,6 @@
> >  $OpenBSD: patch-attacher_c,v 1.1 2003/10/14 23:05:28 jolan Exp $
> > ---- attacher.c.orig        2003-09-08 09:24:48.000000000 -0500
> > -+++ attacher.c     2003-10-14 14:10:14.000000000 -0500
> > +--- attacher.c.orig        Mon Sep  8 16:24:48 2003
> > ++++ attacher.c     Sun Jun 22 14:04:14 2008
> >  @@ -676,7 +676,7 @@ LockTerminal()
> >             setuid(real_uid);       /* this should be done already */
> >   #endif
> > @@ -10,3 +10,16 @@
> >             exit(errno);
> >           }
> >         if (pid == -1)
> > +@@ -869,8 +869,10 @@ screen_builtin_lck()
> > +       errno = 0;
> > +       if ((cp1 = getpass(message)) == NULL)
> > +         {
> > +-          AttacherFinit(SIGARG);
> > +-          /* NOTREACHED */
> > ++          if (errno == EINTR) /* interrupted by a signal */
> > ++            continue;
> > ++
> > ++          AttacherFinit(SIGARG); /* fatal error, exit attacher, unlock 
> > screen */
> > +         }
> > + #ifdef USE_PAM
> > +       PAM_conversation.appdata_ptr = cp1;
> 
> Is this enough? getpass(3) can bail out on other conditions than EINTR.

Well, the question is, what should screen do when getpass(3) fails with EIO,
ENFILE and EMFILE? Aren't they fatal, so screen should exit or kill the
attacher?

But they should be way less common, and they aren't that easy to use
to circumvent the password prompt.

IMHO the patch is good enough. It stops users from really easily
"breaking into" a screen session, not more.

Nevertheless, who uses or trusts this screenlock anyway?
I rather detach and logout, or at least xlock my X session... 

Just my 2 cents.
-- 
simon

Reply via email to