[cvsnt] Re: Using SSPI destroys fileattr.xml
Jelinek, Robert
jelinek.robert at siemens.com
Fri May 5 13:24:18 BST 2006
Ok, I will try to repeat everything:
Client: Windows XP, SP2, hostname testclient joined to domain WW
Server: Debian GNU/Linux, hostname cvsserver.ww.net, joined via samba to
domain WW
Username (on Client): WW/testuser
CVSNT on Servers runs as local user cvsadmin
Repository (/cvsrep) on the server consists of the CVSROOT-Directory and
one module named test and a file named test.txt.
No fileattr.xml exists.
Now the commands (on the client)(output is also included!)
D:\> cvs -d:sspi:cvsserver.ww.net:/cvsrep co test
cvs server: Updating test
U test/test.txt
D:\> cd test
D:\test\> cvs ver
Client: Concurrent Versions System (CVSNT) 2.5.03 (Scorpio)
Build 2260 (client/server)
Server: Concurrent Versions System (CVSNT) 2.5.03 (Scorpio)
Build 2260 (client/server)
D:\test\> cvs edit test.txt
D:\test\> cvs unedit test.txt
Error in xml_read: not well-formed (invalid token) at line 4
cvs [server aborted]: Malformed fileattr.xml file in
/cvsrep/test/CVS. Please fix or delete this file
And now the malformed fileattr.xml:
<?xml version="1.0" encoding="UTF-8"?>
<fileattr>
<file name="test.txt">
<editor[@name=U'WW [@name=U'WW="=U'WW">
<testuser']>
<hostname>testclient </hostname>
<pathname>D:\test</pathname>
<tag>HEAD</tag>
<time>Fri May 5 12:07:50 2006 GMT</time>
</testuser']>
</editor[@name=U'WW>
<watcher[@name=U'WW [@name=U'WW="=U'WW">
<testuser']>
<temp_commit />
<temp_edit />
<temp_unedit />
</testuser']>
</watcher[@name=U'WW>
</file>
</fileattr>
The malformed fileattr.xml was created during the edit-command. The
unedit-command only shows the effect of the malformed fileattr.xml to
the client.
My intention:
I do not want a support, I have solved the problem for me by patching
the cvs-source on the server. I only want to contribute my results.
The reason for the malformed fileattr.xml:
Call of CXmlNode::Lookup with the parameter
"file[@name=F'test.txt']/editor[@name=U'WW/testuser']". This routine
should split this parameters into "file[@name=F'test.txt']" and
"editor[@name=U'WW/testuser']", but it splits it into three parameters
("file[@name=F'test.txt']", "editor[@name=U'WW" and "testuser']"). With
this three parameters it writes an entry into fileattr.xml, which can
not be interpreted later (f.e doing cvs unedit test.txt fails). This
behaviour of CXmlNode::Lookup is caused by the character '/', which is
used for separation of the parameters and is not allowed as a valid
member of the filename or username. The routine should be extended to
allow '/' as a valid character, if it is inside of a string which is
surrounded by '.
I hope, that now everything is clear!
with kind regards,
Robert Jelinek
More information about the cvsnt
mailing list