NetBSD Problem Report #60802

From www@netbsd.org  Sat Sep 26 15:29:05 2026
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
	 client-signature RSA-PSS (2048 bits) client-digest SHA256)
	(Client CN "mail.netbsd.org", Issuer "YR1" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id B03BE1A923C
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 26 Sep 2026 15:29:05 +0000 (UTC)
Message-Id: <20260926152903.CBC061A923E@mollari.NetBSD.org>
Date: Sat, 26 Sep 2026 15:29:03 +0000 (UTC)
From: ea1abz@gmail.com
Reply-To: ea1abz@gmail.com
To: gnats-bugs@NetBSD.org
Subject: x11/xscreensaver 2026Q3 cannot unlock screen
X-Send-Pr-Version: www-1.0
X-From4GNATS: "ea1abz@gmail.com via gnats" <gnats-admin@NetBSD.org>

>Number:         60802
>Category:       pkg
>Synopsis:       x11/xscreensaver 2026Q3 cannot unlock screen
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 26 15:30:01 +0000 2026
>Last-Modified:  Sat Oct 17 08:30:03 +0000 2026
>Originator:     Ramiro Aceves
>Release:        NetBSD 11.0
>Organization:
>Environment:
NetBSD netbsd-nuc.home 11.0 NetBSD 11.0 (GENERIC) #0: Thu Jul 30 15:23:12 UTC 2026  mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/amd64/compile/GENERIC amd64
>Description:
netbsd-nuc$ pkgin se xscreensaver
xscreensaver-6.15nb2 = Screen saver and locker for the X window system


When screen is locked (blank back screen or animation, it does not matter) I cannot unlock it, I see a black secreen with a blinking mouse cursor but never login screen never appears. I must kill xscreensaver process to return to the Xorg session. Same happens in 2026Q2.

I run it manually with logging:


netbsd-nuc$ xscreensaver --log xscreensaver.log
xscreensaver: 17:16:01: logging to file xscreensaver.log

I lock the screen:

netbsd-nuc$ xscreensaver-command --lock
xscreensaver-command: locking

Screen locks in black with fading as usual. I move the mouse to unlock but I cannot unlock. Please see the log:


netbsd-nuc$ cat xscreensaver.log 


##########################################################################
xscreensaver: 17:16:01: logging to "xscreensaver.log"
##########################################################################

	XScreenSaver 6.15, released Mar 2026 -- 5 months ago
	Copyright © 1991-2026 by Jamie Zawinski <jwz@jwz.org>

xscreensaver: 17:16:01: running in process 24863
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
xscreensaver: 17:16:01: wayland: connection failed; assuming real X11
xscreensaver: 17:16:01: XInput version 2.2
xscreensaver: 17:16:01:   device  2/3: MP: Virtual core pointer
xscreensaver: 17:16:01:   device  3/2: MK: Virtual core keyboard
xscreensaver: 17:16:01:   device  4/2: SP: Virtual core XTEST pointer
xscreensaver: 17:16:01:   device  5/3: SK: Virtual core XTEST keyboard
xscreensaver: 17:16:01:   device  6/3: SK: /dev/wskbd
xscreensaver: 17:16:01:   device  7/2: SP: /dev/wsmouse
xscreensaver: 17:16:01: pid 10877: launched xscreensaver-auth --splash --verbose
xscreensaver-auth: 17:16:01: initial effective uid/gid was root/users (0/100)
xscreensaver-auth: 17:16:01: changed uid/gid to ramiro/users (1000/100)
xscreensaver-auth: 17:16:01: running as user "ramiro"
xscreensaver-auth: 17:16:01: mouse is at 302,711 on monitor 0 1920x1080+0+0 "DP1"
xscreensaver-auth: 17:16:01: theme: default
xscreensaver-auth: 17:16:01: kbd layout: Spanish
xscreensaver-auth: 17:16:02: attached input method
xscreensaver-auth: 17:16:02: re-creating window: size changed
xscreensaver-auth: 17:16:02: attached input method
xscreensaver-auth: 17:16:07: splash timed out
xscreensaver: 17:16:07: pid 10877: xscreensaver-auth exited normally
xscreensaver: 17:16:28: XI RawKeyPress  
xscreensaver: 17:16:34: XI RawKeyPress  
xscreensaver: 17:16:37: XI RawKeyPress  
xscreensaver: 17:16:40: XI RawKeyPress  
xscreensaver: 17:16:52: XI RawKeyPress  
xscreensaver: 17:16:52: ClientMessage LOCK: locking
xscreensaver: 17:16:52: locking
xscreensaver: 17:16:52: grabbing keyboard on 0x19f: GrabSuccess
xscreensaver: 17:16:52: grabbing mouse on 0x19f... GrabSuccess
xscreensaver: 17:16:52: pid 29815: launched xscreensaver-gfx --init --verbose
xscreensaver-gfx: 17:16:52: running on display ":0.0"
xscreensaver-gfx: 17:16:52: vendor is The X.Org Foundation, 12101024
xscreensaver-gfx: 17:16:52: useful extensions:
xscreensaver-gfx: 17:16:52:   Shared Memory (1.2)
xscreensaver-gfx: 17:16:52:   Double-Buffering (1.0)
xscreensaver-gfx: 17:16:52:   Power Management (1.2)
xscreensaver-gfx: 17:16:52:   GLX
xscreensaver-gfx: 17:16:52:   XF86 Video-Mode (disabled at compile time)
xscreensaver-gfx: 17:16:52:   Xinerama (1.1)
xscreensaver-gfx: 17:16:52:   Resize-and-Rotate (1.6)
xscreensaver-gfx: 17:16:52:   Composite
xscreensaver-gfx: 17:16:52:   XKeyboard
xscreensaver-gfx: 17:16:52:   XInput (2.4)
xscreensaver-gfx: 17:16:52:   Using EGL
xscreensaver-gfx: 17:16:52:   libsystemd/libelogind disabled at compile time
xscreensaver-gfx: 17:16:52: XDG_CURRENT_DESKTOP = "XFCE"
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
xscreensaver-gfx: 17:16:52: selecting RANDR events
xscreensaver-gfx: 17:16:52:    RANDR screens: 4, Xinerama: 1; believing RANDR
xscreensaver-gfx: 17:16:52:    screens in use: 1
xscreensaver-gfx: 17:16:52:        0/0: 1920x1080+0+0 (DP1)
xscreensaver-gfx: 17:16:52:    rejected screens: 3
xscreensaver-gfx: 17:16:52:       1/0: 1920x1080+0+0 (DP2) -- output disabled
xscreensaver-gfx: 17:16:52:       2/0: 1920x1080+0+0 (HDMI1) -- output disabled
xscreensaver-gfx: 17:16:52:       3/0: 0x0+0+0 (VIRTUAL1) -- output disabled
xscreensaver-gfx: 17:16:52: blanking
xscreensaver-gfx: 17:16:52: saved screenshot 0x3e00005 1920x1080 for window 0x3e00001 1920x1080+0+0
xscreensaver-gfx: 17:16:52: fading...
xscreensaver-gfx: 17:16:52: loaded screenshot 0x3e00007 for window 0x3e00001 1920x1080+0+0 from saved 0x3e00005 1920x1080
xscreensaver-gfx: 17:16:56: fading done
xscreensaver-gfx: 17:16:56: 0: next cycle in 0:10:00 at 17:26:56
xscreensaver: 17:16:59: authorizing (motion)
xscreensaver: 17:16:59: pid 29160: launched xscreensaver-auth --verbose
xscreensaver-auth: 17:16:59: initial effective uid/gid was root/users (0/100)
xscreensaver-auth: 17:16:59: changed uid/gid to ramiro/users (1000/100)
xscreensaver-auth: 17:16:59: running as user "ramiro"
xscreensaver-auth: 17:16:59: pwnam: non-PAM password auth
xscreensaver-auth: 17:16:59: mouse is at 1457,538 on monitor 0 1920x1080+0+0 "DP1"
xscreensaver-auth: 17:16:59: theme: default
xscreensaver-auth: 17:16:59: kbd layout: Spanish
xscreensaver-auth: 17:16:59: attached input method
xscreensaver: 17:16:59: pid 29160: xscreensaver-auth exited with signal 11
xscreensaver: 17:16:59: authorization failed
xscreensaver: 17:17:00: authorizing (motion)
xscreensaver: 17:17:00: pid 22501: launched xscreensaver-auth --verbose
xscreensaver-auth: 17:17:00: initial effective uid/gid was root/users (0/100)
xscreensaver-auth: 17:17:00: changed uid/gid to ramiro/users (1000/100)
xscreensaver-auth: 17:17:00: running as user "ramiro"
xscreensaver-auth: 17:17:00: pwnam: non-PAM password auth
xscreensaver-auth: 17:17:00: mouse is at 1785,508 on monitor 0 1920x1080+0+0 "DP1"
xscreensaver-auth: 17:17:00: theme: default
xscreensaver-auth: 17:17:00: kbd layout: Spanish
xscreensaver-auth: 17:17:00: attached input method
xscreensaver: 17:17:00: pid 22501: xscreensaver-auth exited with signal 11
xscreensaver: 17:17:00: authorization failed
xscreensaver: 17:17:01: authorizing (kbd)
xscreensaver: 17:17:01: pid 1059: launched xscreensaver-auth --verbose
xscreensaver-auth: 17:17:01: initial effective uid/gid was root/users (0/100)
xscreensaver-auth: 17:17:01: changed uid/gid to ramiro/users (1000/100)
xscreensaver-auth: 17:17:01: running as user "ramiro"
xscreensaver-auth: 17:17:01: pwnam: non-PAM password auth
xscreensaver-auth: 17:17:01: mouse is at 1301,509 on monitor 0 1920x1080+0+0 "DP1"
xscreensaver-auth: 17:17:01: theme: default
xscreensaver-auth: 17:17:01: kbd layout: Spanish
xscreensaver-auth: 17:17:01: attached input method
xscreensaver: 17:17:01: pid 1059: xscreensaver-auth exited with signal 11
xscreensaver: 17:17:01: authorization failed
xscreensaver: 17:17:15: SIGTERM received while locked: exiting
xscreensaver-gfx: 17:17:15: SIGTERM: unblanking
xscreensaver: 17:17:15: pid 29815: killing xscreensaver-gfx
netbsd-nuc$ 

It seems that auth fails:

xscreensaver: 17:16:59: pid 29160: xscreensaver-auth exited with signal 11

if I execute xscreensaver-auth manually as normal user it segfaults.


netbsd-nuc$ /usr/pkg/libexec/xscreensaver/xscreensaver-auth 
[1]   Segmentation fault      /usr/pkg/libexec/xscreensaver/xscreensaver-auth
netbsd-nuc$ 

as root:

netbsd-nuc# /usr/pkg/libexec/xscreensaver/xscreensaver-auth
xscreensaver-auth: 17:21:38: running as user "root" -- authentication disallowed
netbsd-nuc#

Thanks so much.

Ramiro.

>How-To-Repeat:
$ xscreensaver &
$ xscreensaver-command --lock

move the mouse to unlock.
>Fix:
yes, please

>Audit-Trail:
From: Ramiro Aceves <ea1abz@gmail.com>
To: gnats-bugs@netbsd.org, pkg-manager@netbsd.org, gnats-admin@netbsd.org,
 pkgsrc-bugs@netbsd.org
Cc: 
Subject: Re: pkg/60802: x11/xscreensaver 2026Q3 cannot unlock screen
Date: Sun, 4 Oct 2026 08:53:03 +0200

 Hi,

 After observing xscreensaver during the whole the week, I can conclude that the malfunctioning
 for unlocking the screen has only been observed on Saturdays in my system.

 I found that the crash can be avoided in NetBSD by setting:


 LIBC_ALLOWCTYPEABUSE=true xscreensaver


 I also played with the locale settings. With:




 LC_TIME="es_ES.UTF-8"   -> fails

 LC_TIME="C"             -> works

 LC_TIME="en_US.UTF-8"   -> works



 So far, this points to an interaction between xscreensaver, NetBSD ctype strict handling, and the Spanish LC_TIME locale.


 For comparison, the same Saturday test on Linux and FreeBSD with Spanish locale did not show the problem.

 Xscreensaver messages at the login unlock screen:


 Linux:
 2026-10-03 09:35:49
       Spanish

 FreeBSD:
 2026-10-03 09:39:40
       Spanish (Windows)

 NetBSD with LIBC_ALLOWCTYPEABUSE="true":
 09:58 a.m., sáb oct 3
        Spanish



 Regards,
 Ramiro

From: Ramiro Aceves <ea1abz@gmail.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/60802: x11/xscreensaver 2026Q3 cannot unlock screen
Date: Sun, 4 Oct 2026 09:16:53 +0200

 Hello,

 Today is Sunday and as I expected, xscreensaver is working fine again. It confirms the weekly pattern failure!

 After compiling xscreensaver to include debugging symbols I have been trying to use
 gdb to discover where it fails but it has been impossible for me. It appears than
 xscreensaver calls xscreensaver-auth to unlock the screen and it crashes there. I
 do not know how to inspect that scenario under gdb. If I load xscreensaver in GDB
 and it calls xscreensaver-auth and crashes there, I do not see anything. I do not
 have enough expertise to do it properly. Any hints will be appreciated.

  From xscreensaver log:

 ...
 ...

 xscreensaver-gfx: 18:25:20: fading...
 xscreensaver-gfx: 18:25:20: loaded screenshot 0x1c00007 for window 0x1c00001 1920x1080+0+0 from saved 0x1c00005 1920x1080
 xscreensaver: 18:25:22: authorizing (motion)
 xscreensaver: 18:25:22: pid 21705: launched xscreensaver-auth --verbose
 xscreensaver-auth: 18:25:22: initial effective uid/gid was root/users (0/100)
 xscreensaver-auth: 18:25:22: changed uid/gid to ramiro/users (1000/100)
 xscreensaver-auth: 18:25:22: running as user "ramiro"
 xscreensaver-auth: 18:25:22: pwnam: non-PAM password auth
 xscreensaver-auth: 18:25:22: mouse is at 1448,601 on monitor 0 1920x1080+0+0 "DP1"
 xscreensaver-auth: 18:25:22: theme: default
 xscreensaver-auth: 18:25:22: kbd layout: Spanish
 xscreensaver-auth: 18:25:22: attached input method

 xscreensaver: 18:25:22: pid 21705: xscreensaver-auth exited with signal 11

 xscreensaver: 18:25:22: authorization failed
 xscreensaver: 18:25:23: authorizing (motion)
 xscreensaver: 18:25:23: pid 23189: launched xscreensaver-auth --verbose
 xscreensaver-auth: 18:25:23: initial effective uid/gid was root/users (0/100)
 xscreensaver-auth: 18:25:23: changed uid/gid to ramiro/users (1000/100)
 xscreensaver-auth: 18:25:23: running as user "ramiro"
 ...
 ...

 For me there is absolutely no problem in running xscreensaver with "C" locale, but it is
 interesting to understand where it fails. I am thinking that perhaps the author is the
 only person that may understand it better, but in his WEB page he tells that:

 "If you are reporting a bug in any version earlier than 6.16 then you are probably
 wasting your time and mine. So please, I implore you, upgrade first. "

 NetBSD uses 6.15 version, which is far more modern than 6.09 in Debian Trixie, even in Debian Unstable!
 I do not want to try to manually change to 6.16 in pkgsrc, there are patches involved and
 I do not have enough expertise to do that and I would enter in another problem.


 Thanks.
 Ramiro.

From: Ramiro Aceves <ea1abz@gmail.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/60802: x11/xscreensaver 2026Q3 cannot unlock screen
Date: Mon, 12 Oct 2026 18:33:31 +0200

 Hello!.

 Past Saturday (Sábado)  xscreensaver-auth crashed as expected, saving core to /tmp worked fine

 thanks to the tips of martin@duskware.de

 kern.coredump.setid.dump=1

 And <snow@flurry.sh>

 kern.coredump.setid.path=/tmp/%n.core

 GDB pointed to:

 work/xscreensaver-6.15/utils/utf8wc.c, line 378


          uc == 0xFF0D ||       /* FULLWIDTH HYPHEN-MINUS */

 I changed char to unsigned char, recompiled, replaced package and it works fine showing "Sáb" in date.

 old:
 return (ispunct((char) uc) ||        /* Posix: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ */

 new:
 return (ispunct((unsigned char) uc) ||        /* Posix: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ */


 full function after correction:


 uc_ispunct (unsigned long uc)
 {
    /* "Unicode Standard Annex #14, Line Breaking Algorithm"
       https://www.unicode.org/reports/tr14/
       ...is a lot.  But this is probably good enough?
     */
    return (ispunct((unsigned char) uc) ||        /* Posix: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ */
            uc == 0x002D ||       /* HYPHEN-MINUS */
            uc == 0x058A ||       /* ARMENIAN HYPHEN */
            uc == 0x05BE ||       /* HEBREW PUNCTUATION MAQAF */
            uc == 0x1400 ||       /* CANADIAN SYLLABICS HYPHEN */
            uc == 0x1806 ||       /* MONGOLIAN TODO SOFT HYPHEN */
            uc == 0x2010 ||       /* HYPHEN */
            uc == 0x2011 ||       /* NON-BREAKING HYPHEN */
            uc == 0x2012 ||       /* FIGURE DASH */
            uc == 0x2013 ||       /* EN DASH */
            uc == 0x2014 ||       /* EM DASH */
            uc == 0x2015 ||       /* HORIZONTAL BAR */
            uc == 0x2053 ||       /* SWUNG DASH */
            uc == 0x207B ||       /* SUPERSCRIPT MINUS */
            uc == 0x208B ||       /* SUBSCRIPT MINUS */
            uc == 0x2212 ||       /* MINUS SIGN */
            uc == 0x2E17 ||       /* DOUBLE OBLIQUE HYPHEN */
            uc == 0x2E1A ||       /* HYPHEN WITH DIAERESIS */
            uc == 0x2E3A ||       /* TWO-EM DASH */
            uc == 0x2E3B ||       /* THREE-EM DASH */
            uc == 0x2E40 ||       /* DOUBLE HYPHEN */
            uc == 0x2E5D ||       /* OBLIQUE HYPHEN */
            uc == 0x301C ||       /* WAVE DASH */
            uc == 0x3030 ||       /* WAVY DASH */
            uc == 0x30A0 ||       /* KATAKANA-HIRAGANA DOUBLE HYPHEN */
            uc == 0xFE31 ||       /* PRESENTATION FORM FOR VERTICAL EM DASH */
            uc == 0xFE32 ||       /* PRESENTATION FORM FOR VERTICAL EN DASH */
            uc == 0xFE58 ||       /* SMALL EM DASH */
            uc == 0xFE63 ||       /* SMALL HYPHEN-MINUS */
            uc == 0xFF0D ||       /* FULLWIDTH HYPHEN-MINUS */
            uc == 0x10EAD);       /* YEZIDI HYPHENATION MARK */
 }




 ***Roland roland.illig@gmx.de pointed that:***************************

  >    return (ispunct((unsigned char) uc) ||        /* Posix: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ */
  >            uc == 0x002D ||       /* HYPHEN-MINUS */
  >            uc == 0x058A ||       /* ARMENIAN HYPHEN */

 That fixes the undefined behavior but is still wrong. The letter U+0121
 "Ä¡" is classified as a punctuation sign because its lower 8 bits are a
 punctuation sign. That's a wrong conclusion. Instead, the condition
 should be:

 (uc < 0x0080 && ispunct((unsigned char)uc)) || …

 In that code, the cast to unsigned char is not strictly necessary
 anymore, but I'd leave it there for static analyzers like lint(1).
 ********************************************************************


 I have applied this patch as he suggested and compiled again. Will test on next saturday.


 netbsd-nuc# cat /usr/pkgsrc/x11/xscreensaver/patches/patch-utils_utf8wc.c
 $NetBSD$

 --- utils/utf8wc.c.orig    2026-10-11 18:25:46.260960200 +0000
 +++ utils/utf8wc.c
 @@ -346,7 +346,7 @@ uc_ispunct (unsigned long uc)
        https://www.unicode.org/reports/tr14/
        ...is a lot.  But this is probably good enough?
      */
 -  return (ispunct((char) uc) ||    /* Posix: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ */
 +  return ((uc < 0x0080 && ispunct((unsigned char) uc)) ||    /* Posix: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ */
             uc == 0x002D ||    /* HYPHEN-MINUS */
             uc == 0x058A ||    /* ARMENIAN HYPHEN */
             uc == 0x05BE ||    /* HEBREW PUNCTUATION MAQAF */
 netbsd-nuc#

From: Ramiro Aceves <ea1abz@gmail.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/60802: x11/xscreensaver 2026Q3 cannot unlock screen
Date: Sat, 17 Oct 2026 10:29:32 +0200

 Hello.

 Roland patch works fine today.

 Regards.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.51 2026/08/10 02:28:17 riastradh Exp $
$NetBSD: gnats_config.sh,v 1.10 2026/05/13 22:00:09 riastradh Exp $
Copyright © 1994-2026 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.