Print this page
12306 XPG4v2 slave pty behaviour should generally be disabled
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Change-ID: I7ccd399c22866f34dd20c6bb9d28e77ba4e24c67
*** 22,32 ****
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013 DEY Storage Systems, Inc.
* Copyright (c) 2014 Gary Mills
* Copyright 2015 Nexenta Systems, Inc. All rights reserved.
* Copyright 2019 Joyent, Inc.
! * Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
*/
/*
* zlogin provides three types of login which allow users in the global
* zone to access non-global zones.
--- 22,32 ----
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013 DEY Storage Systems, Inc.
* Copyright (c) 2014 Gary Mills
* Copyright 2015 Nexenta Systems, Inc. All rights reserved.
* Copyright 2019 Joyent, Inc.
! * Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
*/
/*
* zlogin provides three types of login which allow users in the global
* zone to access non-global zones.
*** 113,124 ****
static int pollerr = 0;
static const char *pname;
static char *username;
- extern int __xpg4; /* 0 if not an xpg4/6-compiled program */
-
/*
* When forced_login is true, the user is not prompted
* for an authentication password in the target zone.
*/
static boolean_t forced_login = B_FALSE;
--- 113,122 ----
*** 768,787 ****
char ibuf[ZLOGIN_BUFSIZ];
cc = read(in_fd, ibuf, ZLOGIN_BUFSIZ);
if (cc == -1 && (errno != EINTR || dead))
return (-1);
! if (cc == 0) {
! /*
! * A return value of 0 when calling read() on a terminal
! * indicates end-of-file pre-XPG4 and no data available
! * for XPG4 and above.
! */
! if (__xpg4 == 0)
! return (-1);
! return (0);
! }
if (cc == -1) /* The read was interrupted. */
return (0);
do {
int len;
--- 766,777 ----
char ibuf[ZLOGIN_BUFSIZ];
cc = read(in_fd, ibuf, ZLOGIN_BUFSIZ);
if (cc == -1 && (errno != EINTR || dead))
return (-1);
! if (cc == 0)
! return (-1); /* EOF */
if (cc == -1) /* The read was interrupted. */
return (0);
do {
int len;