Disable native strndup and strnlen on AIX.
On at least some revisions of AIX, strndup returns unterminated strings under some conditions, apparently because strnlen returns incorrect values in those cases. Disable both on AIX and use the replacements from openbsd-compat. Fixes problem with ECDSA keys there, ok djm.
This commit is contained in:
parent
6b5a17bc14
commit
2c71ca1dd1
|
@ -603,6 +603,8 @@ case "$host" in
|
|||
[AIX 5.2 and 5.3 (and presumably newer) require this])
|
||||
AC_DEFINE([PTY_ZEROREAD], [1], [read(1) can return 0 for a non-closed fd])
|
||||
AC_DEFINE([PLATFORM_SYS_DIR_UID], 2, [System dirs owned by bin (uid 2)])
|
||||
AC_DEFINE([BROKEN_STRNDUP], 1, [strndup broken, see APAR IY61211])
|
||||
AC_DEFINE([BROKEN_STRNLEN], 1, [strnlen broken, see APAR IY62551])
|
||||
;;
|
||||
*-*-android*)
|
||||
AC_DEFINE([DISABLE_UTMP], [1], [Define if you don't want to use utmp])
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
*/
|
||||
|
||||
#include "config.h"
|
||||
#ifndef HAVE_STRNDUP
|
||||
#if !defined(HAVE_STRNDUP) || defined(BROKEN_STRNDUP)
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <stddef.h>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
/* OPENBSD ORIGINAL: lib/libc/string/strnlen.c */
|
||||
|
||||
#include "config.h"
|
||||
#ifndef HAVE_STRNLEN
|
||||
#if !defined(HAVE_STRNLEN) || defined(BROKEN_STRNLEN)
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <string.h>
|
||||
|
|
Loading…
Reference in New Issue