Request change to file match.c, function match_pattern_list
Eric Sisson
ems at mdacc.tmc.edu
Wed Dec 17 06:48:36 EST 2008
Greetings,
This request is in the grey area between a bug report and an
enhancement request.
Request
-------
Please apply the following diff (or something functionally similar) to
file ``match.c'' in OpenSSH-5.1p1:
161a162,164
> } else {
> if (negated)
> got_positive = 1; /* Negative match, negated = Positive */
In case the lines above wrapped in the email transmission, the diff is
attached as a .gz file.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: match.c.diff.gz
Type: application/x-gzip
Size: 104 bytes
Desc: not available
Url : http://lists.mindrot.org/pipermail/openssh-unix-dev/attachments/20081216/fe35d5b5/attachment.bin
-------------- next part --------------
Justification
-------------
On a system running Red Hat Enterprise Linux 4, I wanted to use a
configuration of the following form in sshd_config:
DenyUsers oracle@!localhost.localdomain
that would prevent user ``oracle'' from logging into the host from any
host except the host itself (localhost). Rephrased, I want to allow
logins to user ``oracle'' only by users who already are logged into
the same host that has user ``oracle''.
The above construct fails in OpenSSH, and I traced the failure to the
absence of code handling this case in an ``if'' statement (that checks
the result of function ``match_pattern'') near the end of the main
``for'' loop in function ``match_pattern_list'' in file ``match.c''.
The diff above is an example of code to handle this case.
The meaning of this new code is the following:
- If a string fails to match the subpattern of the configuration, then
execution will flow into ``else'' branch.
- Normally, the failure of a match is a failure (``got_positive''
retains its initialized value of zero).
- However, where a failure is desired (the ``!'' in the specification
subpattern), then the occurrence of a failure is a ``success'', so
``got_positive'' should be set to one.
Initially, I was working with OpenSSH-3.9p1, but I see that the code
remains consistent through OpenSSH-5.1p1, so I am reporting this
change request relative to the newer version.
Respectfully,
Eric Sisson
--
Eric M. Sisson, Systems Analyst III email: ems at mdacc.tmc.edu
Clinical Research Information Systems - Box 237 voice: 713-792-2629
University of Texas M. D. Anderson Cancer Center fax: 713-745-0615
1515 Holcombe Boulevard
Houston, Texas 77030-4009
More information about the openssh-unix-dev
mailing list