openssh-SNAP-20220211.tar.gz
gcc (Debian 10.2.1-6) 10.2.1 20210110
OpenSSL 1.1.1k 25 Mar 2021
Debian GNU/Linux 11 (bullseye)
./configure && make tests
....
cc -g -O2 -pipe -Wno-error=format-truncation -Wall -Wextra -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-parameter -Wno-unused-result -Wimplicit-fallthrough -Wmisleading-indentation -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -fstack-protector-strong -fPIE -I. -I. -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -DSSHDIR=\"/usr/local/etc\" -D_PATH_SSH_PROGRAM=\"/usr/local/bin/ssh\" -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/libexec/ssh-askpass\" -D_PATH_SFTP_SERVER=\"/usr/local/libexec/sftp-server\" -D_PATH_SSH_KEY_SIGN=\"/usr/local/libexec/ssh-keysign\" -D_PATH_SSH_PKCS11_HELPER=\"/usr/local/libexec/ssh-pkcs11-helper\" -D_PATH_SSH_SK_HELPER=\"/usr/local/libexec/ssh-sk-helper\" -D_PATH_SSH_PIDDIR=\"/var/run\" -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c regress/unittests/misc/test_strdelim.c -o regress/unittests/misc/test_strdelim.o
cc -g -O2 -pipe -Wno-error=format-truncation -Wall -Wextra -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-parameter -Wno-unused-result -Wimplicit-fallthrough -Wmisleading-indentation -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -fstack-protector-strong -fPIE -I. -I. -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -DSSHDIR=\"/usr/local/etc\" -D_PATH_SSH_PROGRAM=\"/usr/local/bin/ssh\" -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/libexec/ssh-askpass\" -D_PATH_SFTP_SERVER=\"/usr/local/libexec/sftp-server\" -D_PATH_SSH_KEY_SIGN=\"/usr/local/libexec/ssh-keysign\" -D_PATH_SSH_PKCS11_HELPER=\"/usr/local/libexec/ssh-pkcs11-helper\" -D_PATH_SSH_SK_HELPER=\"/usr/local/libexec/ssh-sk-helper\" -D_PATH_SSH_PIDDIR=\"/var/run\" -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c regress/unittests/misc/test_hpdelim.c -o regress/unittests/misc/test_hpdelim.o
regress/unittests/misc/test_hpdelim.c:18:10: fatal error: test_helper.h: No such file or directory
18 | #include "test_helper.h"
| ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:200: regress/unittests/misc/test_hpdelim.o] Error 1
--
# include <stddisclaimer.h>
/* Kevin Brott <Kevin...@GMail.com> */
---
regress/unittests/misc/test_hpdelim.c:105:1: error: redefinition of ‘test_hpdelim’
105 | test_hpdelim(void)
| ^~~~~~~~~~~~
regress/unittests/misc/test_hpdelim.c:27:1: note: previous definition of ‘test_hpdelim’ with type ‘void(void)’
27 | test_hpdelim(void)
| ^~~~~~~~~~~~
---
Thanks, this should now be fixed.
--
Darren Tucker (dtucker at dtucker.net)
GPG key 11EAA6FA / A86E 3E07 5B19 5880 E860 37F4 9357 ECEF 11EA A6FA (new)
Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.
Confirmed:
openssh-SNAP-20220214.tar.gz
gcc (Debian 10.2.1-6) 10.2.1 20210110
OpenSSL 1.1.1k 25 Mar 2021
Debian GNU/Linux 11 (bullseye)
./configure && make tests
....
all tests passed
--
# include <stddisclaimer.h>
/* Kevin Brott<Kevin...@GMail.com> */
#### http://www.mindrot.org/openssh_snap/openssh-SNAP-20220211.tar.gz
:; autoreconf
# autoreconf (GNU Autoconf) 2.71
:; echo $CC $CXX
/usr/gcc/10/bin/gcc /usr/gcc/10/bin/g++
:; echo $PREFIX
/pz/SFW
:; echo $CFLAGS
-lstdc++ -m64 -march=native -std=c89 -std=c99 -D_POSIX_PTHREAD_SEMANTICS
-D_XOPEN_SOURCE=600 -D_FILE_OFFSET_BITS=64 -D__EXTENSIONS__
-I${PREFIX}/include -I${PREFIX}/include/openssl -I${PREFIX}/apr/include
-I${PREFIX}/include/nghttp3 -I/usr/include -I/usr/gnu/include
-I/usr/include/readline -I/usr/include/ncurses -I/usr/include/idn2
:; ./configure --prefix=${PREFIX}
--sysconfdir=${PREFIX}/etc/openssh
--with-cflags="${CFLAGS} -DHAVE_MBLEN"
--with-kerberos5=${PREFIX}
--with-ssl-dir=${PREFIX}
--with-zlib=${PREFIX}
--with-pam
--with-xauth=/usr/bin/xauth
--with-libedit
--with-mantype=man
--with-solaris-projects
--with-solaris-privs
...
:; gmake
...
:; ./ssh -V
OpenSSH_8.8p1-snap20220211, OpenSSL 1.1.1m 14 Dec 2021
Many thanks, and best regards.
--
--
Predrag Zečević
predrag.ze...@googlemail.com
------------------
:; which openssl
/pz/SFW/bin/openssl
:; openssl version
OpenSSL 1.1.1m 14 Dec 2021
Regards.
--
It is OpenIndiana (Illumos kernel), with self compiled OpenSSL, MIT
Kerberos 5 and zlib.
The rest of packages are from OS.
:; uname -rosv
SunOS 5.11 illumos-da38379730 illumos
So, yes, like Solaris.
OpenSSH behaves good (already using it - although not everything is tested).
I have compiled it myself, since OS version is still using OpenSSL 1.0:
:; /usr/bin/ssh -V
OpenSSH_8.1p1, OpenSSL 1.0.2u 20 Dec 2019
Best regards.
On 15.02.2022 23:01, Darren Tucker wrote:
> On Wed, 16 Feb 2022 at 01:09, Predrag Zecevic
> <predrag.ze...@googlemail.com> wrote:
>> Tests are failing:
>> :; gmake tests
>> ...
>> In file included from /pz/SFW/include/openssl/x509.h:30,
>> from /pz/SFW/include/openssl/pem.h:17,
>> from regress/misc/sk-dummy/sk-dummy.c:48:
>> /pz/SFW/include/openssl/sha.h:56:3: error: conflicting types for
>> 'SHA256_CTX'
>> 56 | } SHA256_CTX;
>> | ^~~~~~~~~~
> What platform is that? From the paths I'm guessing a Solaris or derivative?
>
--
Predrag Zečević
predrag.ze...@googlemail.com
> Darren, is there any chance of making an Alpine VM to test against?
If it helps, I can reproduce this on Debian, with musl-tools installed.
$ CC=musl-gcc mksh configure --without-openssl --without-zlib
$ make tests
[…]
make[1]: Entering directory '/tmp/openssh/regress'
/tmp/openssh/ssh-keygen -if /tmp/openssh/regress/rsa_ssh2.prv | diff - /tmp/openssh/regress/rsa_openssh.prv
key conversion disabled at compile time
0a1,15
> -----BEGIN RSA PRIVATE KEY-----
> MIICWgIBAAKBgQDsilwKcaKN6wSMNd1WgQ9+HRqQEkD0kCTVttrazGu0OhBU3Uko
> +dFD1Ip0CxdXmN25JQWxOYF7h/Ocu8P3jzv3RTX87xKR0YzlXTLX+SLtF/ySebS3
> xWPrlfRUDhh03hR5V+8xxvvy9widPYKw/oItwGSueOsEq1LTczCDv2dAjQIDAQAB
> An8nH5VzvHkMbSqJ6eOYDsVwomRvYbH5IEaYl1x6VATITNvAu9kUdQ4NsSpuMc+7
> Jj9gKZvmO1y2YCKc0P/iO+i/eV0L+yQh1Rw18jQZll+12T+LZrKRav03YNvMx0gN
> wqWY48Kt6hv2/N/ebQzKRe79+D0t2cTh92hT7xENFLIBAkEBGnoGKFjAUkJCwO1V
> mzpUqMHpRZVOrqP9hUmPjzNJ5oBPFGe4+h1hoSRFOAzaNuZt8ssbqaLCkzB8bfzj
> qhZqAQJBANZekuUpp8iBLeLSagw5FkcPwPzq6zfExbhvsZXb8Bo/4SflNs4JHXwI
> 7SD9Z8aJLvM4uQ/5M70lblDMQ40i3o0CQQDIJvBYBFL5tlOgakq/O7yi+wt0L5BZ
> 9H79w5rCSAA0IHRoK/qI1urHiHC3f3vbbLk5UStfrqEaND/mm0shyNIBAkBLsYdC
> /ctt5Bc0wUGK4Vl5bBmj9LtrrMJ4FpBpLwj/69BwCuKoK9XKZ0h73p6XHveCEGRg
> PIlFX4MtaoLrwgU9AkBV2k4dgIws+X8YX65EsyyFjnlDqX4x0nSOjQB1msIKfHBr
> dh5XLDBTTCxnKhMJ0Yx/opgOvf09XHBFwaQntR5i
> -----END RSA PRIVATE KEY-----
make[1]: *** [Makefile:149: t1] Error 1
make[1]: Leaving directory '/tmp/openssh/regress'
make: *** [Makefile:727: file-tests] Error 2
At this point, it’s built, and it appears that…
$ make t-exec
… runs the precise test that failed for the OP.
(Why the configure script doesn’t configure the tests so
they run only those that can actually be run without OpenSSL
is beyond me…)
The reason for disabling OpenSSL and libz is that you’d need
versions of them built against musl-libc which isn’t normally
available on glibc-using Debian.
musl is… very opinionated. Its <sys/poll.h> contains a very
annoing #warning (because POSIX has <poll.h> instead) which
I suggest to sudoedit away first.
bye,
//mirabilos
--
15:41⎜<Lo-lan-do:#fusionforge> Somebody write a testsuite for helloworld :-)
> these can be a bit tricky. There are some instructions at the top of
> sandbox-seccomp.c if you want to give it a try but unfortunately the
In musl libc, you also have to comment out the…
# include <asm/siginfo.h>
… because such a header is not shipped with it. The compilation works
without, though.
Unfortunately, dalias is very strictly against making it possible to
detect musl at compile time, so wrapping it in #ifdef __GLIBC__ or so.
There are none of the expected messages though :/
But perhaps this strace snippet helps:
write(2, "debug1: inetd sockets after dupp"..., 43debug1: inetd sockets after dupping: 3, 3
) = 43
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
rt_sigaction(SIGALRM, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1 RT_2], sa_flags=SA_RESTORER, sa_restorer=0x7f74765eea48}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGHUP, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1 RT_2], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f74765eea48}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1 RT_2], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f74765eea48}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1 RT_2], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f74765eea48}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1 RT_2], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f74765eea48}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1 RT_2], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f74765eea48}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7476566000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7476565000
getpeername(3, {sa_family=AF_INET, sin_port=htons(45850), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
getpeername(3, {sa_family=AF_INET, sin_port=htons(45850), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(4242), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(4242), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
getpeername(3, {sa_family=AF_INET, sin_port=htons(45850), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
getsockopt(3, SOL_IP, IP_OPTIONS, 0x7ffddb068c90, [200->0]) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(4242), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
getpid() = 6833
write(2, "Connection from 127.0.0.1 port 4"..., 61Connection from 127.0.0.1 port 45850 on 127.0.0.1 port 4242
) = 61
rt_sigprocmask(SIG_UNBLOCK, [RT_1 RT_2], NULL, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=0x55f8c5084f80, sa_mask=~[RTMIN RT_1 RT_2], sa_flags=SA_RESTORER, sa_restorer=0x7f74765eea48}, {sa_handler=SIG_DFL, sa_mask=~[KILL STOP RTMIN RT_1 RT_2], sa_flags=SA_RESTORER, sa_restorer=0x7f74765eea48}, 8) = 0
write(3, "SSH-2.0-OpenSSH_8.8\r\n", 21) = 21
getpid() = 6833
write(2, "debug1: Local version string SSH"..., 50debug1: Local version string SSH-2.0-OpenSSH_8.8
) = 50
read(3, "S", 1) = 1
read(3, "S", 1) = 1
read(3, "H", 1) = 1
read(3, "-", 1) = 1
read(3, "2", 1) = 1
read(3, ".", 1) = 1
read(3, "0", 1) = 1
read(3, "-", 1) = 1
read(3, "O", 1) = 1
read(3, "p", 1) = 1
read(3, "e", 1) = 1
read(3, "n", 1) = 1
read(3, "S", 1) = 1
read(3, "S", 1) = 1
read(3, "H", 1) = 1
read(3, "_", 1) = 1
read(3, "8", 1) = 1
read(3, ".", 1) = 1
read(3, "8", 1) = 1
read(3, "\r", 1) = 1
read(3, "\n", 1) = 1
getpid() = 6833
write(2, "debug1: Remote protocol version "..., 74debug1: Remote protocol version 2.0, remote software version OpenSSH_8.8
) = 74
getpid() = 6833
write(2, "debug1: compat_banner: match: Op"..., 74debug1: compat_banner: match: OpenSSH_8.8 pat OpenSSH* compat 0x04000000
) = 74
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
getpid() = 6833
write(2, "debug2: fd 3 setting O_NONBLOCK\r"..., 33debug2: fd 3 setting O_NONBLOCK
) = 33
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0
socketpair(AF_UNIX, SOCK_STREAM, 0, [4, 5]) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fcntl(5, F_SETFD, FD_CLOEXEC) = 0
pipe([6, 7]) = 0
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
fcntl(7, F_SETFD, FD_CLOEXEC) = 0
getpid() = 6833
write(2, "debug3: ssh_sandbox_init: prepar"..., 52debug3: ssh_sandbox_init: preparing rlimit sandbox
) = 52
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1 RT_2], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], ~[KILL STOP RTMIN RT_1 RT_2], 8) = 0
fork() = 6837
rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1 RT_2], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
getpid() = 6833
write(2, "debug2: Network child is on pid "..., 38debug2: Network child is on pid 6837
) = 38
getpid() = 6833
write(2, "debug3: preauth child monitor st"..., 39debug3: preauth child monitor started
) = 39
close(4) = 0
close(7) = 0
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1strace: Process 6837 attached
<unfinished ...>
[pid 6837] gettid() = 6837
[pid 6837] rt_sigprocmask(SIG_SETMASK, ~[KILL STOP RTMIN RT_1 RT_2], NULL, 8) = 0
[pid 6837] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 6837] close(5) = 0
[pid 6837] close(6) = 0
[pid 6837] getrandom("\x85\x8b\x44\xc8\x9b\xc6\x2e\x9f\xcd\x23\x8d\xb5\xb2\xd1\x34\x6a\x49\x21\x1b\x01\x68\xb0\xff\x27\xc2\x99\x9b\xfd\x10\xb1\x88\xcc"..., 40, 0) = 40
[pid 6837] getpid() = 6837
[pid 6837] getrandom("\x79\xb0\x34\x61\x78\x74\xdb\x57\x6f\xda\x0e\x03\xf2\xc1\x20\xf6\x25\x43\xaa\x37\x01\x3e\xd4\x7b\xbe\x9b\xd9\xee\x18\x30\x2e\x9e"..., 40, 0) = 40
[pid 6837] munmap(0x7f747656e000, 20480) = 0
[pid 6837] munmap(0x7f7476569000, 20480) = 0
[pid 6837] prlimit64(0, RLIMIT_FSIZE, {rlim_cur=0, rlim_max=0}, NULL) = 0
[pid 6837] prlimit64(0, RLIMIT_NOFILE, {rlim_cur=0, rlim_max=0}, NULL) = 0
[pid 6837] prlimit64(0, RLIMIT_NPROC, {rlim_cur=0, rlim_max=0}, NULL) = 0
[pid 6837] getpid() = 6837
[pid 6837] write(7, "\0\0\0F\0\0\0\5\0\0\0\0\0\0\0:list_hostkey_typ"..., 74 <unfinished ...>
[pid 6833] <... poll resumed>) = 1 ([{fd=6, revents=POLLIN}])
[pid 6837] <... write resumed>) = 74
[pid 6833] read(6, <unfinished ...>
[pid 6837] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 <unfinished ...>
[pid 6833] <... read resumed>"\0\0\0F", 4) = 4
[pid 6837] <... mmap resumed>) = 0x7f7476572000
[pid 6833] read(6, "\0\0\0\5\0\0\0\0\0\0\0:list_hostkey_types: "..., 70) = 70
[pid 6837] getpid( <unfinished ...>
[pid 6833] write(2, "debug1: list_hostkey_types: ssh-"..., 78 <unfinished ...>
[pid 6837] <... getpid resumed>) = 6837
debug1: list_hostkey_types: ssh-ed25519,sk-ssh-...@openssh.com [preauth]
[pid 6833] <... write resumed>) = 78
[pid 6837] getpid( <unfinished ...>
[pid 6833] poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1 <unfinished ...>
[pid 6837] <... getpid resumed>) = 6837
[pid 6837] write(7, "\0\0\0 \0\0\0\7\0\0\0\0\0\0\0\24send packet: typ"..., 36 <unfinished ...>
[pid 6833] <... poll resumed>) = 1 ([{fd=6, revents=POLLIN}])
[pid 6837] <... write resumed>) = 36
[pid 6833] read(6, <unfinished ...>
[pid 6837] getpid( <unfinished ...>
[pid 6833] <... read resumed>"\0\0\0 ", 4) = 4
[pid 6837] <... getpid resumed>) = 6837
[pid 6833] read(6, <unfinished ...>
[pid 6837] write(7, "\0\0\0!\0\0\0\5\0\0\0\0\0\0\0\25SSH2_MSG_KEXINIT"..., 37 <unfinished ...>
[pid 6833] <... read resumed>"\0\0\0\7\0\0\0\0\0\0\0\24send packet: type 20", 32) = 32
[pid 6837] <... write resumed>) = 37
[pid 6833] write(2, "debug3: send packet: type 20 [pr"..., 40 <unfinished ...>
debug3: send packet: type 20 [preauth]
[pid 6837] write(3, "\0\0\2\354\10\24\352\345t\306\f\335\217l1\f\227\252\353\vf\337\0\0\0Qcurve2"..., 752 <unfinished ...>
[pid 6833] <... write resumed>) = 40
[pid 6833] poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1 <unfinished ...>
[pid 6837] <... write resumed>) = 752
[pid 6833] <... poll resumed>) = 1 ([{fd=6, revents=POLLIN}])
[pid 6833] read(6, "\0\0\0!", 4) = 4
[pid 6833] read(6, "\0\0\0\5\0\0\0\0\0\0\0\25SSH2_MSG_KEXINIT sen"..., 33) = 33
[pid 6833] write(2, "debug1: SSH2_MSG_KEXINIT sent [p"..., 41debug1: SSH2_MSG_KEXINIT sent [preauth]
) = 41
[pid 6833] poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1 <unfinished ...>
[pid 6837] ppoll([{fd=3, events=POLLIN}], 1, NULL, NULL, 8) = -1 EINVAL (Invalid argument)
[pid 6837] getpid() = 6837
[pid 6837] write(7, "\0\0\0Z\0\0\0\3\0\0\0\0\0\0\0Nssh_dispatch_run"..., 94 <unfinished ...>
[pid 6833] <... poll resumed>) = 1 ([{fd=6, revents=POLLIN}])
[pid 6837] <... write resumed>) = 94
[pid 6833] read(6, "\0\0\0Z", 4) = 4
[pid 6833] read(6, "\0\0\0\3\0\0\0\0\0\0\0Nssh_dispatch_run_fat"..., 90) = 90
[pid 6833] write(2, "ssh_dispatch_run_fatal: Connecti"..., 90ssh_dispatch_run_fatal: Connection from 127.0.0.1 port 45850: Invalid argument [preauth]
) = 90
[pid 6833] poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1 <unfinished ...>
[pid 6837] getpid() = 6837
[pid 6837] write(7, "\0\0\0\26\0\0\0\5\0\0\0\0\0\0\0\ndo_cleanup", 26 <unfinished ...>
[pid 6833] <... poll resumed>) = 1 ([{fd=6, revents=POLLIN}])
[pid 6837] <... write resumed>) = 26
[pid 6833] read(6, "\0\0\0\26", 4) = 4
[pid 6833] read(6, "\0\0\0\5\0\0\0\0\0\0\0\ndo_cleanup", 22) = 22
[pid 6833] write(2, "debug1: do_cleanup [preauth]\r\n", 30debug1: do_cleanup [preauth]
) = 30
[pid 6833] poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1 <unfinished ...>
[pid 6837] exit_group(255) = ?
[pid 6833] <... poll resumed>) = 1 ([{fd=6, revents=POLLHUP}])
[pid 6837] +++ exited with 255 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=6837, si_uid=1000, si_status=255, si_utime=0, si_stime=0} ---
read(6, "", 4) = 0
getpid() = 6833
write(2, "debug1: monitor_read_log: child "..., 47debug1: monitor_read_log: child log fd closed
) = 47
close(6) = 0
poll([{fd=5, events=POLLIN}], 1, -1) = 1 ([{fd=5, revents=POLLIN|POLLHUP}])
getpid() = 6833
write(2, "debug3: mm_request_receive: ente"..., 38debug3: mm_request_receive: entering
) = 38
read(5, "", 4) = 0
getpid() = 6833
write(2, "debug1: do_cleanup\r\n", 20debug1: do_cleanup
) = 20
getpid() = 6833
write(2, "debug1: Killing privsep child 68"..., 36debug1: Killing privsep child 6837
) = 36
kill(6837, SIGKILL) = 0
exit_group(255) = ?
+++ exited with 255 +++
bye,
//mirabilos
--
«MyISAM tables -will- get corrupted eventually. This is a fact of life. »
“mysql is about as much database as ms access” – “MSSQL at least descends
from a database” “it's a rebranded SyBase” “MySQL however was born from a
flatfile and went downhill from there” – “at least jetDB doesn’t claim to
be a database” (#nosec) ‣‣‣ Please let MySQL and MariaDB finally die!
The TinyC compiler tcc does
#?0|kent:tcc.git$ git grep -i musl master
...
master:configure: --config-uClibc,-musl,-mingw32... enable system specific configurations
master:configure: if test -f "/lib/ld-musl-$cpu.so.1"; then
master:configure: echo "Perhaps you want ./configure --config-musl"
...
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)
> The TinyC compiler tcc does
>
> #?0|kent:tcc.git$ git grep -i musl master
> ...
> master:configure: --config-uClibc,-musl,-mingw32... enable system specific configurations
> master:configure: if test -f "/lib/ld-musl-$cpu.so.1"; then
> master:configure: echo "Perhaps you want ./configure --config-musl"
Ouch, completely bogus.
I’ve found one reliable way to detect musl at configure time,
at least for the last couple of years of their releases.
Compile and link a hello-world program, then check whether the
binary contains MUSL_LOCPATH as string.
I’ve managed to not need to rely on that. I believe it’s obvious
why I’m trying to. I *did* find something recently that would
have benefit from musl detection, but it’s just avoiding a bug
in old musl versions, so I’m leaving that to the packager and
document it. (The testsuite also catches it so I’m now urging
people even more to run it.)
bye,
//mirabilos
--
Sometimes they [people] care too much: pretty printers [and syntax highligh-
ting, d.A.] mechanically produce pretty output that accentuates irrelevant
detail in the program, which is as sensible as putting all the prepositions
in English text in bold font. -- Rob Pike in "Notes on Programming in C"
> Thanks, that does help. I'll add that to the github CI test configs.
You’re welcome.
> with this patch passes. Might be the pfd.fd=-1 for marking FDs as
> unused that's causing it to fail?
Hmm. POSIX says:
If the value of fd is less than 0, events shall be ignored, and
revents shall be set to 0 in that entry on return from poll().
musl says they strictly follow POSIX. Might be a bug?
Probably best to ask there. http://musl.libc.org/ links to IRC and
a mailing list. I checked their known issues list, but poll doesn’t
show up there.
> > (Why the configure script doesn't configure the tests so
> > they run only those that can actually be run without OpenSSL
> > is beyond me???)
>
> Both those tests and the Makefile predate --without-openssl by a
> considerable time. Right now regress/Makefile is not processed by
> configure and changing that never made it to the top of a to-do list.
Ah, okay.
bye,
//mirabilos
--
Infrastrukturexperte • tarent solutions GmbH
Am Dickobskreuz 10, D-53121 Bonn • http://www.tarent.de/
Telephon +49 228 54881-393 • Fax: +49 228 54881-235
HRB AG Bonn 5168 • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg
****************************************************
/⁀\ The UTF-8 Ribbon
╲ ╱ Campaign against Mit dem tarent-Newsletter nichts mehr verpassen:
╳ HTML eMail! Also, https://www.tarent.de/newsletter
╱ ╲ header encryption!
****************************************************
It is a nice hint imho.
|I’ve found one reliable way to detect musl at configure time,
|at least for the last couple of years of their releases.
|
|Compile and link a hello-world program, then check whether the
|binary contains MUSL_LOCPATH as string.
That .. does not seem to be true for native musl systems?
You could grep for ld-musl or libc.musl though, *i think*.
|I’ve managed to not need to rely on that. I believe it’s obvious
|why I’m trying to. I *did* find something recently that would
|have benefit from musl detection, but it’s just avoiding a bug
|in old musl versions, so I’m leaving that to the packager and
|document it. (The testsuite also catches it so I’m now urging
|people even more to run it.)
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)
> |Ouch, completely bogus.
>
> It is a nice hint imho.
Nope. It hardcodes a path into the *host* system. Absolutely wrong,
on multiple counts. (It would also trigger, say, on a glibc system
with musl installed.)
> That .. does not seem to be true for native musl systems?
Link statically.
bye,
//mirabilos
--
Infrastrukturexperte • tarent solutions GmbH
Am Dickobskreuz 10, D-53121 Bonn • http://www.tarent.de/
Telephon +49 228 54881-393 • Fax: +49 228 54881-235
HRB AG Bonn 5168 • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg
****************************************************
/⁀\ The UTF-8 Ribbon
╲ ╱ Campaign against Mit dem tarent-Newsletter nichts mehr verpassen:
╳ HTML eMail! Also, https://www.tarent.de/newsletter
╱ ╲ header encryption!
****************************************************
On Fri, 18 Feb 2022, Steffen Nurpmeso wrote:
> Well it may look secondarily. This is musl libc in the end.
> And note it does not, as per the snippet you removed, perform any
> action on its own, it just gives a hint for a specific configure
> option which does.
I don’t understand what you are trying to say here.
> |>|Ouch, completely bogus.
> |>
> |> It is a nice hint imho.
> |
> |Nope. It hardcodes a path into the *host* system. Absolutely wrong,
> |on multiple counts. (It would also trigger, say, on a glibc system
> |with musl installed.)
> I am using the same mechanism (i have not
> invented it) in my ~/.profile, for setting LC_ALL.
It’s plain wrong, that’s what it is.
lrwxrwxrwx 1 root root 25 2. Okt 14:47 /lib/ld-linux.so.2 -> i386-linux-gnu/ld-2.31.so*
lrwxrwxrwx 1 root root 25 15. Jan 2021 /lib/ld-musl-x86_64.so.1 -> x86_64-linux-musl/libc.so*
This Debian system just has both, so you cannot use this to detect musl.
(Similarily, you cannot use this to detect a pure-static musl system;
I’m told the suckless people have interest in these.)
> |Link statically.
>
> Nah. For hello world you mean?
Yes, link the hello world statically so strings will show MUSL_LOCPATH
occurring. You can use -static for this, or the distro is broken.
> #?0|kent:musl.git$ git grep -i LOCPA master
> master:WHATSNEW:- MUSL_LOCPATH search was broken with multiple components
> master:src/locale/locale_map.c: if (!libc.secure) path = getenv("MUSL_LOCPATH");
Yes, this is where it comes from.
> Never heard of it.
It’s probably their equivalent of glibc LOCPATH: a path where a user
can install custom locales into.
See: https://serverfault.com/a/1093896/189656
gl hf,
//mirabilos
--
Infrastrukturexperte • tarent solutions GmbH
Am Dickobskreuz 10, D-53121 Bonn • http://www.tarent.de/
Telephon +49 228 54881-393 • Fax: +49 228 54881-235
HRB AG Bonn 5168 • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg
****************************************************
/⁀\ The UTF-8 Ribbon
╲ ╱ Campaign against Mit dem tarent-Newsletter nichts mehr verpassen:
╳ HTML eMail! Also, https://www.tarent.de/newsletter
╱ ╲ header encryption!
****************************************************
We were talking about AlpineLinux aka a native musl system, it was
you who came over with some sort of special development or
otherwise special-purpose thing, Mr.
|(Similarily, you cannot use this to detect a pure-static musl system;
|I’m told the suckless people have interest in these.)
|
|>|Link statically.
|>
|> Nah. For hello world you mean?
|
|Yes, link the hello world statically so strings will show MUSL_LOCPATH
|occurring. You can use -static for this, or the distro is broken.
You do have a static musl on your box Mr.?
|> #?0|kent:musl.git$ git grep -i LOCPA master
|> master:WHATSNEW:- MUSL_LOCPATH search was broken with multiple \
|> components
|> master:src/locale/locale_map.c: if (!libc.secure) path = getenv("MUSL_L\
|> OCPATH");
|
|Yes, this is where it comes from.
|
|> Never heard of it.
|
|It’s probably their equivalent of glibc LOCPATH: a path where a user
|can install custom locales into.
|See: https://serverfault.com/a/1093896/189656
I fail to see how this can be used to reliable detect this
environment.
A nice weekend everybody, if you can.
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)
> Current master (bc16667b4a1c3cad7029304853c143a32ae04bd4) fails on Fedora 35
> when building building tests with========
> cc -o regress/unittests/misc/test_misc -L. -Lopenbsd-compat/ -Wl,-z,relro
> -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-strong -pie
> regress/unittests/misc/tests.o regress/unittests/misc/test_parse.o
> regress/unittests/misc/test_expand.o regress/unittests/misc/test_convtime.o
> regress/unittests/misc/test_argv.o regress/unittests/misc/test_strdelim.o
> regress/unittests/misc/test_hpdelim.o \
> regress/unittests/test_helper/libtest_helper.a \
> -lssh -lopenbsd-compat -lssh -lopenbsd-compat -lcrypto -lz -lcrypt
> /usr/bin/ld: regress/unittests/misc/test_hpdelim.o: relocation R_X86_64_32
> against `.rodata.str1.1' can not be used when making a PIE object; recompile
> with -fPIE
That's weird, because according to the configure output, -fPIE is already
in CFLAGS.
> Compiler flags: -g -O2 -pipe -Wno-error=format-truncation -Wall -Wextra
> -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security
> -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-parameter
> -Wno-unused-result -Wimplicit-fallthrough -Wmisleading-indentation
> -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fzero-call-used-regs=all
> -fno-builtin-memset -fstack-protector-strong -fPIE
Is it possible you had an old .o file laying around from a previous
compilation?
If not, then please dig out the make output for the compilation of
test_hpdelim.c and see whather -fPIE is applied there correctly.
-d
FWIW, I couldn't replicate this in a fedora35 VM