Bug 2181974

Summary: In RHEL 9 /usr/bin/which fails for long path
Product: Red Hat Enterprise Linux 9 Reporter: Pradeep Jagtap <prjagtap>
Component: whichAssignee: Than Ngo <than>
Status: CLOSED ERRATA QA Contact: CS System Management SST QE <rhel-cs-system-management-subsystem-qe>
Severity: medium Docs Contact: Šárka Jana <sjanderk>
Priority: unspecified    
Version: 9.1CC: than
Target Milestone: rcKeywords: Triaged
Target Release: 9.3Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: which-2.21-29.el9 Doc Type: Bug Fix
Doc Text:
.The `which` command no longer fails for a long path Previously, when you executed the `which` command in a directory with a path longer than 256 characters, the command failed with the `Can't get current working directory` error message. With this fix, the `which` command now uses the `PATH_MAX` value for the path length limit. As a result, the command no longer fails.
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-07 08:51:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pradeep Jagtap 2023-03-27 06:46:19 UTC
Description of problem:
=======================
/usr/bin/which fails for long path

Version-Release number of selected component (if applicable):
which-2.21-28.el9.x86_64

How reproducible:
====================
Steps to Reproduce:
-------------------
1. Create Directory with long path
      # mkdir -p /tmp/1111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000/1111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000/11111111112222222222333333333344444444445555555555

2. Change directory to the created one
     # cd !$

3. Execute which command 
     # which cd

Actual results:
=================
Fails with error:
Can't get current working directory

Expected results:
===================
Should show below results
$ which cd
/usr/bin/cd


Additional info:
=================
In RHEL 7,8 and 9)
-------------------
The buffer is 256 in which.c

static char home[256];
static char cwd[256];
  static char result[256];

Comment 11 errata-xmlrpc 2023-11-07 08:51:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (which bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:6599