From owner-freebsd-bugs Mon Mar 12 17:40:29 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id BC5B637B71A for ; Mon, 12 Mar 2001 17:40:01 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.1/8.11.1) id f2D1e1750940; Mon, 12 Mar 2001 17:40:01 -0800 (PST) (envelope-from gnats) Received: from mail.disney.com (mail.disney.com [204.128.192.15]) by hub.freebsd.org (Postfix) with ESMTP id F0C3637B719 for ; Mon, 12 Mar 2001 17:35:31 -0800 (PST) (envelope-from Jim.Pirzyk@disney.com) Received: from pain10.corp.disney.com (root@pain10.corp.disney.com [153.7.110.100]) by mail.disney.com (Switch-2.0.1/Switch-2.0.1) with SMTP id f2D1Z2c13346 for ; Mon, 12 Mar 2001 17:35:02 -0800 (PST) Received: from louie.fa.disney.com by pain.corp.disney.com with ESMTP for FreeBSD-gnats-submit@freebsd.org; Mon, 12 Mar 2001 17:36:10 -0800 Received: from plio.fan.fa.disney.com (plio.fan.fa.disney.com [153.7.118.2]) by louie.fa.disney.com (8.9.2/8.9.2) with ESMTP id RAA04685 for ; Mon, 12 Mar 2001 17:35:30 -0800 (PST) (envelope-from Jim.Pirzyk@fa.disney.com) Received: from snoopy.fan.fa.disney.com (snoopy.fan.fa.disney.com [153.7.117.170]) by plio.fan.fa.disney.com (8.9.2/8.9.2) with ESMTP id RAA09362 for ; Mon, 12 Mar 2001 17:35:29 -0800 (PST) (envelope-from Jim.Pirzyk@fa.disney.com) Received: (from Jim.Pirzyk@localhost) by snoopy.fan.fa.disney.com (8.11.1/8.9.3) id f2D1ZTH06033; Mon, 12 Mar 2001 17:35:29 -0800 (PST) (envelope-from Jim.Pirzyk@fa.disney.com) Message-Id: <200103130135.f2D1ZTH06033@snoopy.fan.fa.disney.com> Date: Mon, 12 Mar 2001 17:35:29 -0800 (PST) From: Jim.Pirzyk@disney.com Reply-To: Jim.Pirzyk@disney.com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: bin/25757: rcp does not handle logins with a '.' in them Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 25757 >Category: bin >Synopsis: rcp does not handle logins with a '.' in it >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Mar 12 17:40:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Jim Pirzyk >Release: FreeBSD 4.2-RELEASE i386 >Organization: >Environment: FreeBSD 4.2-RELEASE >Description: If you use rcp with a login name, that login name has a '.' in it, rcp will fail, but returns a 0 error code. >How-To-Repeat: touch /tmp/junk rcp Jim.Pirzyk@localhost:/tmp/junk /tmp/junk2 >Fix: The following fix handles both problems, a) returns non zero when the login name is bad. b) allows a '.' in the login name *** ./bin/rcp/rcp.c.orig Thu Feb 24 13:21:15 2000 --- ./bin/rcp/rcp.c Mon Mar 12 17:28:50 2001 *************** *** 308,315 **** suser = argv[i]; if (*suser == '\0') suser = pwd->pw_name; ! else if (!okname(suser)) continue; (void)snprintf(bp, len, "%s %s -l %s -n %s %s '%s%s%s:%s'", _PATH_RSH, host, suser, cmd, src, --- 308,317 ---- suser = argv[i]; if (*suser == '\0') suser = pwd->pw_name; ! else if (!okname(suser)) { ! ++errs; continue; + } (void)snprintf(bp, len, "%s %s -l %s -n %s %s '%s%s%s:%s'", _PATH_RSH, host, suser, cmd, src, *************** *** 389,396 **** suser = argv[i]; if (*suser == '\0') suser = pwd->pw_name; ! else if (!okname(suser)) continue; } len = strlen(src) + CMDNEEDS + 20; if ((bp = malloc(len)) == NULL) --- 391,400 ---- suser = argv[i]; if (*suser == '\0') suser = pwd->pw_name; ! else if (!okname(suser)) { ! ++errs; continue; + } } len = strlen(src) + CMDNEEDS + 20; if ((bp = malloc(len)) == NULL) *** ./bin/rcp/util.c.orig Mon Mar 12 17:14:08 2001 --- ./bin/rcp/util.c Mon Mar 12 17:29:38 2001 *************** *** 98,104 **** c = *cp; if (c & 0200) goto bad; ! if (!isalpha(c) && !isdigit(c) && c != '_' && c != '-') goto bad; } while (*++cp); return (1); --- 98,104 ---- c = *cp; if (c & 0200) goto bad; ! if (!isalpha(c) && !isdigit(c) && c != '_' && c != '-' && c != '.') goto bad; } while (*++cp); return (1); >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message