[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Another bug in "admin -m"
From: |
Rodolfo Schulz de Lima |
Subject: |
RE: Another bug in "admin -m" |
Date: |
Sat, 18 Oct 2003 16:23:14 -0300 |
> To me it appears that this problem will arise only if SOME_TAG does not
> exist in all of the files provided as an argument to the cvs admin
> command. Still it should work on any file that does have SOME_TAG in it
> and not fail on those that do not.
Of course I've been peeking around cvs code for 2 days, but by looking at
the following code
case 'm':
p = strchr (arg, ':');
if (p == NULL)
{
error (0, 0, "%s: -m option lacks revision number",
rcs->path);
status = 1;
continue;
}
*p = '\0';
rev = RCS_gettag (rcs, arg + 2, 1, NULL); /* Force tag match
*/
if (rev == NULL)
{
error (0, 0, "%s: no such revision %s", rcs->path,
arg+2);
status = 1;
*p++ = ':';
continue;
}
*p++ = ':';
msg = p;
when you set *p='\0', you're changing the command argument applied to all
files. If you don't set *p to ':' again when a revision is not found, the
wrong command line will be used to all remaining files, and the check for a
revision number will fail. So, the command will work (because of *p++ = ':')
until one revision is not found, then all the following files will fail,
whether the revision exists or not. Of course, this problem didn't happen in
1.11.9 because RCS_gettag always returned something different than NULL :)
Removed one bug that unhide (unhode???) another one :)
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 1/9/2003
Re: Another bug in "admin -m", Paul Edwards, 2003/10/18
RE: Another bug in "admin -m", Rodolfo Schulz de Lima, 2003/10/18