View | Details | Raw Unified | Return to bug 74331
Collapse All | Expand All

(-)src/ChangeLog (+10 lines)
Lines 1-5 Link Here
1
2005-03-17  Derek Price  <derek@ximbiot.com>
1
2005-03-17  Derek Price  <derek@ximbiot.com>
2
	* login.c (password_entry_parseline): Avoid using uninitialized
3
	variable.
4
	* rcs.c (RCS_deltas): Avoid buffer overflow.
5
	(RCS_checkout): Avoid using uninitialized loglen.
6
	* patch.c (patch_fileproc): Free original pointer, not one that may
7
	have been incremented.
8
	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
9
10
2005-03-17  Derek Price  <derek@ximbiot.com>
11
2
	* commit.c (checkaddfile): Avoid dereferencing a NULL pointer in
12
	* commit.c (checkaddfile): Avoid dereferencing a NULL pointer in
3
	response to a rare error.
13
	response to a rare error.
4
	* admin.c (admin_fileproc), log.c (log_expand_revlist), mkmodules.c
14
	* admin.c (admin_fileproc), log.c (log_expand_revlist), mkmodules.c
(-)src/login.c (-1 / +1 lines)
Lines 119-125 password_entry_parseline (cvsroot_canoni Link Here
119
	if (isspace(*(linebuf + 1)))
119
	if (isspace(*(linebuf + 1)))
120
	    /* special case since strtoul ignores leading white space */
120
	    /* special case since strtoul ignores leading white space */
121
	    entry_version = 0;
121
	    q = linebuf + 1;
122
	else
122
	else
123
	    entry_version = strtoul (linebuf + 1, &q, 10);
123
	    entry_version = strtoul (linebuf + 1, &q, 10);
(-)src/patch.c (-3 / +4 lines)
Lines 391-396 patch_fileproc (callerdat, finfo) Link Here
391
    struct utimbuf t;
391
    struct utimbuf t;
392
    char *vers_tag, *vers_head;
392
    char *vers_tag, *vers_head;
393
    char *rcs = NULL;
393
    char *rcs = NULL;
394
    char *rcs_orig = NULL;
394
    RCSNode *rcsfile;
395
    RCSNode *rcsfile;
395
    FILE *fp1, *fp2, *fp3;
396
    FILE *fp1, *fp2, *fp3;
396
    int ret = 0;
397
    int ret = 0;
Lines 421-427 patch_fileproc (callerdat, finfo) Link Here
421
    if ((rcsfile->flags & VALID) && (rcsfile->flags & INATTIC))
422
    if ((rcsfile->flags & VALID) && (rcsfile->flags & INATTIC))
422
	isattic = 1;
423
	isattic = 1;
423
    rcs = xmalloc (strlen (finfo->file) + sizeof (RCSEXT) + 5);
424
    rcs_orig = rcs = xmalloc (strlen (finfo->file) + sizeof (RCSEXT) + 5);
424
    (void) sprintf (rcs, "%s%s", finfo->file, RCSEXT);
425
    (void) sprintf (rcs, "%s%s", finfo->file, RCSEXT);
425
    /* if vers_head is NULL, may have been removed from the release */
426
    /* if vers_head is NULL, may have been removed from the release */
Lines 763-770 failed to read diff file header %s for % Link Here
763
	free (vers_tag);
764
	free (vers_tag);
764
    if (vers_head != NULL)
765
    if (vers_head != NULL)
765
	free (vers_head);
766
	free (vers_head);
766
    if (rcs != NULL)
767
    if (rcs_orig)
767
	free (rcs);
768
	free (rcs_orig);
768
    return ret;
769
    return ret;
769
}
770
}
(-)src/rcs.c (-4 / +5 lines)
Lines 3067-3074 RCS_getdate (rcs, date, force_tag_match) Link Here
3067
    if (retval != NULL)
3067
    if (retval != NULL)
3068
	return (retval);
3068
	return (retval);
3069
    if (!force_tag_match ||
3069
    if (vers && (!force_tag_match || RCS_datecmp (vers->date, date) <= 0))
3070
	(vers != NULL && RCS_datecmp (vers->date, date) <= 0))
3071
	return xstrdup (vers->version);
3070
	return xstrdup (vers->version);
3072
    else
3071
    else
3073
	return NULL;
3072
	return NULL;
Lines 4155-4161 RCS_checkout (rcs, workfile, rev, nameta Link Here
4155
    size_t len;
4154
    size_t len;
4156
    int free_value = 0;
4155
    int free_value = 0;
4157
    char *log = NULL;
4156
    char *log = NULL;
4158
    size_t loglen;
4157
    size_t loglen = 0;
4159
    Node *vp = NULL;
4158
    Node *vp = NULL;
4160
#ifdef PRESERVE_PERMISSIONS_SUPPORT
4159
#ifdef PRESERVE_PERMISSIONS_SUPPORT
4161
    uid_t rcs_owner = (uid_t) -1;
4160
    uid_t rcs_owner = (uid_t) -1;
Lines 7529-7535 RCS_deltas (rcs, fp, rcsbuf, version, op Link Here
7529
		for (ln = 0; ln < headlines.nlines; ++ln)
7528
		for (ln = 0; ln < headlines.nlines; ++ln)
7530
		{
7529
		{
7531
		    char buf[80];
7530
		    char *buf;
7532
		    /* Period which separates year from month in date.  */
7531
		    /* Period which separates year from month in date.  */
7533
		    char *ym;
7532
		    char *ym;
7534
		    /* Period which separates month from day in date.  */
7533
		    /* Period which separates month from day in date.  */
Lines 7540-7549 RCS_deltas (rcs, fp, rcsbuf, version, op Link Here
7540
		    if (prvers == NULL)
7539
		    if (prvers == NULL)
7541
			prvers = vers;
7540
			prvers = vers;
7541
		    buf = xmalloc (strlen (prvers->version) + 24);
7542
		    sprintf (buf, "%-12s (%-8.8s ",
7542
		    sprintf (buf, "%-12s (%-8.8s ",
7543
			     prvers->version,
7543
			     prvers->version,
7544
			     prvers->author);
7544
			     prvers->author);
7545
		    cvs_output (buf, 0);
7545
		    cvs_output (buf, 0);
7546
		    free (buf);
7546
		    /* Now output the date.  */
7547
		    /* Now output the date.  */
7547
		    ym = strchr (prvers->date, '.');
7548
		    ym = strchr (prvers->date, '.');

Return to bug 74331