- (djm) [configure.ac atomicio.c] Kludge around NetBSD offering
different symbols for 'read' when various compiler flags are in use, causing atomicio.c comparisons against it to break and read/write operations to hang; ok dtucker
This commit is contained in:
parent
c2868192dd
commit
f5bbd3b657
|
@ -2,6 +2,10 @@
|
|||
- (djm) [configure.ac] Only check for width-specified integer types
|
||||
in headers that actually exist. patch from Tom G. Christensen;
|
||||
ok dtucker@
|
||||
- (djm) [configure.ac atomicio.c] Kludge around NetBSD offering
|
||||
different symbols for 'read' when various compiler flags are
|
||||
in use, causing atomicio.c comparisons against it to break and
|
||||
read/write operations to hang; ok dtucker
|
||||
|
||||
20140129
|
||||
- (djm) [configure.ac] Fix broken shell test '==' vs '='; patch from
|
||||
|
|
|
@ -56,8 +56,10 @@ atomicio6(ssize_t (*f) (int, void *, size_t), int fd, void *_s, size_t n,
|
|||
ssize_t res;
|
||||
struct pollfd pfd;
|
||||
|
||||
#ifndef BROKEN_READ_COMPARISON
|
||||
pfd.fd = fd;
|
||||
pfd.events = f == read ? POLLIN : POLLOUT;
|
||||
#endif
|
||||
while (n > pos) {
|
||||
res = (f) (fd, s + pos, n - pos);
|
||||
switch (res) {
|
||||
|
@ -65,7 +67,9 @@ atomicio6(ssize_t (*f) (int, void *, size_t), int fd, void *_s, size_t n,
|
|||
if (errno == EINTR)
|
||||
continue;
|
||||
if (errno == EAGAIN || errno == EWOULDBLOCK) {
|
||||
#ifndef BROKEN_READ_COMPARISON
|
||||
(void)poll(&pfd, 1, -1);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: configure.ac,v 1.567 2014/01/29 23:21:20 djm Exp $
|
||||
# $Id: configure.ac,v 1.568 2014/01/30 00:26:46 djm Exp $
|
||||
#
|
||||
# Copyright (c) 1999-2004 Damien Miller
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
AC_INIT([OpenSSH], [Portable], [openssh-unix-dev@mindrot.org])
|
||||
AC_REVISION($Revision: 1.567 $)
|
||||
AC_REVISION($Revision: 1.568 $)
|
||||
AC_CONFIG_SRCDIR([ssh.c])
|
||||
AC_LANG([C])
|
||||
|
||||
|
@ -769,6 +769,8 @@ mips-sony-bsd|mips-sony-newsos4)
|
|||
TEST_MALLOC_OPTIONS="AJRX"
|
||||
AC_DEFINE([BROKEN_STRNVIS], [1],
|
||||
[NetBSD strnvis argument order is swapped compared to OpenBSD])
|
||||
AC_DEFINE([BROKEN_READ_COMPARISON], [1],
|
||||
[NetBSD read function is sometimes redirected, breaking atomicio comparisons against it])
|
||||
;;
|
||||
*-*-freebsd*)
|
||||
check_for_libcrypt_later=1
|
||||
|
|
Loading…
Reference in New Issue