Return-Path: Delivered-To: apmail-apr-dev-archive@www.apache.org Received: (qmail 16928 invoked from network); 29 Jul 2007 22:03:53 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 Jul 2007 22:03:53 -0000 Received: (qmail 5809 invoked by uid 500); 29 Jul 2007 22:03:53 -0000 Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 5770 invoked by uid 500); 29 Jul 2007 22:03:53 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Id: Delivered-To: mailing list dev@apr.apache.org Received: (qmail 5759 invoked by uid 99); 29 Jul 2007 22:03:52 -0000 Received: from Unknown (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Jul 2007 15:03:52 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ehuels@gmail.com designates 209.85.198.188 as permitted sender) Received: from [209.85.198.188] (HELO rv-out-0910.google.com) (209.85.198.188) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Jul 2007 22:03:49 +0000 Received: by rv-out-0910.google.com with SMTP id f1so269706rvb for ; Sun, 29 Jul 2007 15:03:29 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=k0OnrCDdI3O7GNyrTRm861L2Rl3rzRR0vuLNvN56DXhonYK6ulwbLnKmkqXuUAcnmP0LfjGaW6xKnepwFgqAA9ume3tm3hKBGmPYSCHuggSDOUBPqDe9HYz4hKZeGJYZITWlbJKB+Kb9wtv6jpcvD/i9+YTHTDZ/6VR3nmK9RLQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=TN78E/06qY2aPZ1FsK87g39MvmXt/tCdNuoiVCdYWrpqkpc4RwmKlsU5oBIPWk2iB4LfTRinds/du5oXxgF0aVh/KWhUSDo+9ubZ+wYJ+6UkMTs/qWmJAYsEr68QPbnSo+FedHFlU9nPYhttVihARSlNq5NQcNEitd29+C9B2No= Received: by 10.142.229.4 with SMTP id b4mr271311wfh.1185746609656; Sun, 29 Jul 2007 15:03:29 -0700 (PDT) Received: by 10.143.34.1 with HTTP; Sun, 29 Jul 2007 15:03:29 -0700 (PDT) Message-ID: Date: Mon, 30 Jul 2007 00:03:29 +0200 From: "Erik Huelsmann" To: "William A. Rowe, Jr." Subject: Re: SVN CLI and Windows security Cc: "Brad Stiles" , users@subversion.tigris.org, "APR Developer List" In-Reply-To: <46AD0C79.1030906@rowe-clan.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20070725182304.IJIE15943.ibm66aec.bellsouth.net@mail.bellsouth.net> <46AD0C79.1030906@rowe-clan.net> X-Virus-Checked: Checked by ClamAV on apache.org On 7/29/07, William A. Rowe, Jr. wrote: > Erik Huelsmann wrote: > > On 7/25/07, Brad Stiles wrote: > >> I ran into a situation today concerning the command line client and windows security. The problem is that the user (a build user performing automated builds on a Windows 2003 VM) attempted to check out a file to a network share and couldn't, apparently because that user doesn't have access to the share root, even though it does have access to the directory into which the file should be exported. > >> > >> The command I used was: > >> > >> svn export http://server/trunk/dir1/dir2/file.txt \\server\share\dir1\dir2\dir3\file.txt --non-interactive --force > >> > >> To which svn.exe responded: > >> > >> svn: Error resolving case of '\\server\share\dir1\dir2\dir3\file.txt' > >> > >> In that tree, the user has no rights to \\server\share\, but has read/write access to dir1 and below. If, as that user, I do 'dir \\server\share', I see nothing, but if I do 'dir \\server\share\dir1', I see everything just fine. > >> > >> Now, in our case, that shouldn't be a problem much longer because the network guys are in the process of changing the access rights on that directory; the build user really should have access there. However, I don't think it's unreasonable to assume that there might be a legitimate reason for such a restriction. > >> > >> Is there something we did wrong here (aside from the rights issue) that would have allowed the export to happen despite the access rights? FWIW, 'svn checkout' resulted in the same type of error. > >> > >> When the network guy saw it, he said, "Maybe they're using the old NT4 method of stepping through the tree, rather than going straight to the location specified." Is there something in whatever layer svn is using for this that accesses the tree step by step rather than as one entity? And is it worth "fixing" if it is a problem? > > > > Well, it's an error that finds its roots in a call to > > apr_filepath_merge with an argument of APR_FILEPATH_TRUENAME. Looking > > at that function, it calls apr_filepath_root, which tries to isolate > > the root in order to see whether it actually exists. That scheme > > breaks down when there are no read/write permissions. > > This presumes it's an error at all. I didn't mean that. I meant to say it's an error *message* that ... (etc) > The _TRUENAME flag tells us that we > MUST use the canonical path. The *only* way to accomplish this is with > read/traverse access through the file path. > > The arguements for this approach is that an app (such as a server) often > needs to deal with the single proper name of a resource. Program Files > may be Progra~1, it may also be Progra~2, or on netware, ProgramF. > > > I have no idea whether the APR project feels this is something worth > > to be fixed, or even fixeable. I cc'ed their dev@ list, to make them > > aware if the weren't already. > > Of course it won't be fixed, because it is not broken. That's what I meant by fixeable. At first glance it looks rather broken (in the Win32 api) that the only way to retrieve the canonical path is to traverse the entire tree from that path up. But, alas, that's not up for discussion here. I hope Brad got his answer; I'll move on. Thanks for your time, Bill. bye, Erik.