Hi Paul,

Paul Eggert <[EMAIL PROTECTED]> writes:

> This is with CVS 1.12.13, which I built on Debian stable with GCC 4.1.1.
> 
> Here's how to reproduce the failure:
> 
> $ cvs -d :pserver:[EMAIL PROTECTED]:/sources/gnulib co -p 
> gnulib/./doc/fdl.texi
> cvs [checkout aborted]: received abort signal
> cvs: recurse.c:716: do_recursion: Assertion `strstr (repository, "/./") == 
> ((void *)0)' failed.

Thank you for the bug report. It appears that the change first appeared
in recurse revision 1.79 and was backported to cvs 1.11.x as well.

Here is the ChangeLog entry:

2003-04-02  Derek Price  <[EMAIL PROTECTED]>

        * recurse.c (do_recursion): Use strstr("/./") rather than strchr('.')
        to catch only indirections in paths and not directory names with dots
        in them.
        (Report from Pavel Roskin <[EMAIL PROTECTED]>.)

        * sanity.sh (multiroot): Put a dot in the CVSROOT_DIRNAMEs.
        (dottedroot): New test.
        (Based on a script from Pavel Roskin <[EMAIL PROTECTED]>.)

A copy of Pavel's original report is after my .signature. Derek Price is
the one who created the fix and may know if it should be handled in some
other manner to avoid triggering security checks.

        Thanks!
        -- Mark

 ------- original bug report -------
Date: Wed, 2 Apr 2003 13:50:19 -0500 (EST)
From: Pavel Roskin <[EMAIL PROTECTED]>
X-X-Sender: [EMAIL PROTECTED]
To: [email protected], Derek Price <[EMAIL PROTECTED]>
Subject: CVS CVS: Assertion failed on checkout

Hello!

Today's CVS crashes on checkout if CVSROOT has "." in its name:

cvs: recurse.c:652: do_recursion: Assertion `(__extension__
(__builtin_constant_p ('.') && ('.') == '\0' ? (char *) __rawmemchr
(repository, '.') : strchr (repository, '.'))) == ((void *)0)' failed.

Test case is attached.  Run it in an empty directory with any name.

-- 
Regards,
Pavel Roskin
[1. text/plain; test]...
#!/bin/sh

TOP=`pwd`
rm -rf cvs.root
rm -rf dir1
rm -rf module
cvs -d $TOP/cvs.root init
mkdir $TOP/dir1
mkdir $TOP/dir1/dir2
echo version1 >$TOP/dir1/dir2/file1
cd $TOP/dir1
cvs -d $TOP/cvs.root import -m "" module1 AUTHOR INITIAL
cd $TOP
cvs -d $TOP/cvs.root co -r Branch module1
_______________________________________________
Bug-cvs mailing list
[email protected]
http://mail.gnu.org/mailman/listinfo/bug-cvs


_______________________________________________
Bug-cvs mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/bug-cvs

Reply via email to