Bug 671145 - /etc/profile.d/cvs.csh uses non-tcsh syntax
Summary: /etc/profile.d/cvs.csh uses non-tcsh syntax
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: cvs
Version: 6.0
Hardware: Unspecified
OS: Unspecified
medium
high
Target Milestone: rc
: ---
Assignee: Petr Pisar
QA Contact: Tomas Dolezal
URL:
Whiteboard:
Keywords: EasyFix, Patch
: 684785 757090 (view as bug list)
Depends On:
Blocks: 836169
TreeView+ depends on / blocked
 
Reported: 2011-01-20 15:18 UTC by Petr Pisar
Modified: 2018-11-27 19:33 UTC (History)
7 users (show)

(edit)
Cause
    User having tcsh login shell connects to CVS remote
    server.
Consequence
    CVS client uses rsh instead of SSH to reach server
    becuase CVS_RSH environment is not set. If the server
    has disabled rsh, then the connection cannot be
    established. If the rsh is enabled, then sensitive
    data can leak because rsh is not encrypted.
Fix
    /etc/profile.d/cvs.csh has been adjusted to use valid csh
    syntax to set CVS_RSH environment variable properly at
    log-in.
Result
    The CVS client will use SSH transport by default even if
    user's login shell is tcsh.
Clone Of: 671003
(edit)
Last Closed: 2012-09-21 14:03:29 UTC


Attachments (Terms of Use)
/etc/profile.d/cvs.csh (92 bytes, text/plain)
2011-01-20 15:44 UTC, Petr Pisar
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2012:1302 normal SHIPPED_LIVE cvs bug fix update 2012-11-19 17:29:36 UTC

Description Petr Pisar 2011-01-20 15:18:13 UTC
+++ This bug was initially created as a clone of Bug #671003 +++

  Here's the content of the csh profile /etc/profile.d/cvs.csh:

    # change default from rsh to ssh for cvs command
    setenv CVS_RSH "${CVS_RSH-ssh}"

  This is not valid tcsh syntax.  This kind of variable substitution
  is only valid in POSIX shells.

  Right now, this bug does not result in an error when starting tcsh, but
  only because current tcsh versions ignore that line for the simple reason
  that it's missing a newline.  However, the upcoming tcsh 6.18.00 will NOT
  ignore that last line anymore and a syntax error will occur.

  The correct syntax for csh and tcsh is

    if ( "$?CVS_RSH" == 0 ) setenv CVS_RSH ssh

  I hope this can be fixed soon.  And, please add a newline since otherwise
  the line will never be executed with the current tcsh 6.17.00.

Comment 1 Petr Pisar 2011-01-20 15:44:07 UTC
Created attachment 474480 [details]
/etc/profile.d/cvs.csh

Please note the command must terminate with new line, otherwise the line is not
interpreted by tcsh (see bug #671003 for more details).

Comment 2 Petr Pisar 2011-03-14 13:55:17 UTC
*** Bug 684785 has been marked as a duplicate of this bug. ***

Comment 3 RHEL Product and Program Management 2011-07-05 23:42:04 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unfortunately unable to
address this request at this time. Red Hat invites you to
ask your support representative to propose this request, if
appropriate and relevant, in the next release of Red Hat
Enterprise Linux. If you would like it considered as an
exception in the current release, please ask your support
representative.

Comment 4 Petr Pisar 2011-10-14 11:29:00 UTC
This bug exhibits with current cvs-1.11.23-12.el6.x86_64 and tcsh-6.17-13.el6.x86_64.

Comment 6 Petr Pisar 2011-11-25 14:31:51 UTC
*** Bug 757090 has been marked as a duplicate of this bug. ***

Comment 11 Petr Pisar 2012-07-11 13:53:45 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause
    User having tcsh login shell connects to CVS remote
    server.
Consequence
    CVS client uses rsh instead of SSH to reach server
    becuase CVS_RSH environment is not set. If the server
    has disabled rsh, then the connection cannot be
    established. If the rsh is enabled, then sensitive
    data can leak because rsh is not encrypted.
Fix
    /etc/profile.d/cvs.csh has been adjusted to use valid csh
    syntax to set CVS_RSH environment variable properly at
    log-in.
Result
    The CVS client will use SSH transport by default even if
    user's login shell is tcsh.

Comment 15 errata-xmlrpc 2012-09-21 14:03:29 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, and where to find the updated
files, follow the link below.

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

http://rhn.redhat.com/errata/RHBA-2012-1302.html


Note You need to log in before you can comment on or make changes to this bug.