Package: wine Version: 10.0~repack-6 Severity: normal
When /run/user/$uid is not writeable and TMPDIR is set, e.g. in a container wine crashes on startup. Setting XDG_RUNTIME_DIR to a writable folder does not help. This is caused by the debian patch debian/patches/fixes/temporary-directory.patch: https://salsa.debian.org/wine-team/wine/-/blob/debian13-wine10/debian/patches/fixes/temporary-directory.patch?ref_type=heads#L201 To reproduce: $ docker run -ti --rm debian:trixie bash $ apt install wine $ adduser test .... test@fb6a24900fd6:/$ export TMPDIR=/tmp test@fb6a24900fd6:/$ ls /run/user/1000 ls: cannot access '/run/user/1000': No such file or directory test@fb6a24900fd6:/$ id uid=1000(test) gid=1000(test) groups=1000(test),100(users) test@fb6a24900fd6$ winecfg it looks like wine32 is missing, you should install it. multiarch needs to be enabled first. as root, please execute "dpkg --add-architecture i386 && apt-get update && apt-get install wine32:i386" free(): invalid pointer Aborted (core dumped) a stacktrace shows the crash in the patched function: #8 __GI___libc_free (mem=0x7ffcf2decf38) at ./malloc/malloc.c:3476 #9 0x00007b660fb8e084 in server_tmpdir (cfg_dir=<optimized out>) at include/wine/server_tmpdir.h:139 which is: free( root_dir ); test@fb6a24900fd6:/$ gdb --args /usr/lib/wine/wine64 winecfg.exe GNU gdb (Debian 16.3-1) 16.3 ... (gdb) r Starting program: /usr/lib/wine/wine64 winecfg.exe warning: Error disabling address space randomization: Operation not permitted [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". process 8727 is executing new program: /usr/lib/wine/wine64 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". free(): invalid pointer Program received signal SIGABRT, Aborted. __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 warning: 44 ./nptl/pthread_kill.c: No such file or directory (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 #1 0x00007b660fcaf9ff in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89 #2 0x00007b660fc5acc2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007b660fc434ac in __GI_abort () at ./stdlib/abort.c:73 #4 0x00007b660fc44291 in __libc_message_impl (fmt=fmt@entry=0x7b660fdc632d "%s\n") at ../sysdeps/posix/libc_fatal.c:134 #5 0x00007b660fcb9465 in malloc_printerr (str=str@entry=0x7b660fdc4100 "free(): invalid pointer") at ./malloc/malloc.c:5829 #6 0x00007b660fcbe3dc in _int_free_check (av=0x7b660fe02ac0 <main_arena>, p=0x7ffcf2decf28, size=<optimized out>) at ./malloc/malloc.c:4560 #7 _int_free (av=0x7b660fe02ac0 <main_arena>, p=0x7ffcf2decf28, have_lock=0) at ./malloc/malloc.c:4692 #8 __GI___libc_free (mem=0x7ffcf2decf38) at ./malloc/malloc.c:3476 #9 0x00007b660fb8e084 in server_tmpdir (cfg_dir=<optimized out>) at include/wine/server_tmpdir.h:139 #10 init_server_dir (dev=107, ino=690014) at dlls/ntdll/unix/server.c:1259 #11 setup_config_dir () at dlls/ntdll/unix/server.c:1299 #12 server_connect () at dlls/ntdll/unix/server.c:1359 #13 server_init_process () at dlls/ntdll/unix/server.c:1572 #14 0x00007b660fb7eb77 in start_main_thread () at dlls/ntdll/unix/loader.c:1861 #15 __wine_main (argc=2, argv=0x7ffcf2deb2d8) at dlls/ntdll/unix/loader.c:2189 #16 0x0000596f1d775273 in ?? () #17 0x00007b660fc44ca8 in __libc_start_call_main (main=main@entry=0x596f1d775180, argc=argc@entry=2, argv=argv@entry=0x7ffcf2deb2d8) at ../sysdeps/nptl/libc_start_call_main.h:58 #18 0x00007b660fc44d65 in __libc_start_main_impl (main=0x596f1d775180, argc=2, argv=0x7ffcf2deb2d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffcf2deb2c8) at ../csu/libc-start.c:360 #19 0x0000596f1d775531 in _start ()
