Projects
openEuler:24.03:SP1:Everything
less
_service:tar_scm:backport-Avoid-stealing-data-f...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-Avoid-stealing-data-from-an-input-program-that-uses-.patch of Package less
From c8df315c742fc470e766244ce8efe305a98d720a Mon Sep 17 00:00:00 2001 From: Mark Nudelman <markn@greenwoodsoftware.com> Date: Sun, 28 May 2023 15:28:42 -0700 Subject: [PATCH] Avoid stealing data from an input program that uses the tty at startup, like sudo. --- os.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/os.c b/os.c index af95834..7206277 100644 --- a/os.c +++ b/os.c @@ -114,6 +114,8 @@ static int check_poll(int fd, int tty) { struct pollfd poller[2] = { { fd, POLLIN, 0 }, { tty, POLLIN, 0 } }; int timeout = (waiting_for_data && !(scanning_eof && follow_mode == FOLLOW_NAME)) ? -1 : waiting_for_data_delay; + if (!any_data) + return (0); poll(poller, 2, timeout); #if LESSTEST if (ttyin_name == NULL) /* Check for ^X only on a real tty. */ @@ -136,7 +138,7 @@ static int check_poll(int fd, int tty) * to allow a program piping data into less to have temporary * access to the tty (like sudo asking for a password). */ - if (any_data && (poller[0].revents & (POLLIN|POLLHUP|POLLERR)) == 0) + if ((poller[0].revents & (POLLIN|POLLHUP|POLLERR)) == 0) /* No data available; let caller take action, then try again. */ return (READ_AGAIN); /* There is data (or HUP/ERR) available. Safe to call read() without blocking. */ -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2