On Thu, Nov 04, 2021 at 10:33:58PM -0400, Larkin Nickle wrote: > OpenSSH is broken on HP-UX 10.x as the libc has an undocumented `getline` > which is detected by configure, openbsd-compat's `getline` ends up not being > used. This causes a segfault as soon as you try to do anything useful with > the built binaries. > > I think it could be worked around with something like this (after taking > getline out of the long list of functions to check) in configure.ac, but > consider this as pseudocode as I don't know much about actually writing > m4/for autoconf: Usually we have a BROKEN_$THING to disable $THING in that case (grep for BROKEN_SNPRINTF for an example), and there's an existing case statement for HP-UX where we can put it. Please try this patch (you'll need to run "autoreconf" to rebuild configure). diff --git a/configure.ac b/configure.ac index 57fcc9bc..67824888 100644 --- a/configure.ac +++ b/configure.ac @@ -765,6 +765,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) if test -z "$GCC"; then CFLAGS="$CFLAGS -Ae" fi + AC_DEFINE([BROKEN_GETLINE], [1], [getine is not what we expect]) ;; *-*-hpux11*) AC_DEFINE([PAM_SUN_CODEBASE], [1], diff --git a/openbsd-compat/bsd-getline.c b/openbsd-compat/bsd-getline.c index d676f4ce..a1c78e96 100644 --- a/openbsd-compat/bsd-getline.c +++ b/openbsd-compat/bsd-getline.c @@ -39,7 +39,7 @@ #include "file.h" #endif -#if !HAVE_GETLINE +#if !defined(HAVE_GETLINE) && !defined(BROKEN_GETLINE) #include <stdlib.h> #include <stdio.h> #include <unistd.h> -- 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. _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev