9e8ecfb2f4
Some additional fixes from millert@ sprintf -> snprintf str{cat,cpy} -> strl{cat,cpy} http://marc.theaimsgroup.com/?l=bugtraq&m=105638591907836&w=2 ok naddy@
82 lines
2.5 KiB
Plaintext
82 lines
2.5 KiB
Plaintext
$OpenBSD: patch-gnats_gen-closed-date_c,v 1.1 2003/08/25 23:35:06 brad Exp $
|
|
--- gnats/gen-closed-date.c.orig Tue Oct 26 23:22:29 1999
|
|
+++ gnats/gen-closed-date.c Wed Jul 2 13:23:13 2003
|
|
@@ -70,9 +70,10 @@ void usage (), version ();
|
|
static int
|
|
get_closed ()
|
|
{
|
|
- char *final1, *final2, str[133], *from_start, *to_start, from[32], to[32];
|
|
+ char *final1, *final2, *from_start, *to_start, from[32], to[32];
|
|
char *p, *c, *when_start, when[133], *new_audit, *copy_ptr;
|
|
int len, from_len, to_len, closed_date_set = 0, changed_separator;
|
|
+ size_t audit_len;
|
|
|
|
p = pr[AUDIT_TRAIL].value;
|
|
|
|
@@ -83,7 +84,8 @@ get_closed ()
|
|
return (1);
|
|
}
|
|
|
|
- new_audit = xmalloc (strlen (p) * 2);
|
|
+ audit_len = strlen (p) * 2;
|
|
+ new_audit = xmalloc (len);
|
|
new_audit[0] = '\0';
|
|
copy_ptr = p;
|
|
|
|
@@ -105,8 +107,8 @@ get_closed ()
|
|
} else {
|
|
/* Change - to -> here */
|
|
final1++;
|
|
- strncat (new_audit, copy_ptr, final1 - copy_ptr);
|
|
- strcat (new_audit, ">");
|
|
+ strncat (new_audit, copy_ptr, final1 - copy_ptr); /* XXX */
|
|
+ strlcat (new_audit, ">", audit_len);
|
|
copy_ptr = final1;
|
|
changed_separator = 1;
|
|
}
|
|
@@ -162,7 +164,7 @@ get_closed ()
|
|
}
|
|
} while (final1);
|
|
|
|
- strcat (new_audit, copy_ptr);
|
|
+ strlcat (new_audit, copy_ptr, audit_len);
|
|
xfree (pr[AUDIT_TRAIL].value);
|
|
pr[AUDIT_TRAIL].value = new_audit;
|
|
|
|
@@ -245,7 +247,7 @@ do_category (c)
|
|
return;
|
|
}
|
|
|
|
- sprintf (path, "%s/%s/", gnats_root, c);
|
|
+ snprintf (path, len + 9, "%s/%s/", gnats_root, c);
|
|
|
|
/* Process each file in the directory; ignore files that have periods
|
|
in their names; either they're the . and .. dirs, or they're a
|
|
@@ -254,7 +256,7 @@ do_category (c)
|
|
if (strchr (next->d_name, '.') == NULL)
|
|
{
|
|
p = path + len - 1;
|
|
- strcat (p, next->d_name);
|
|
+ strlcat (p, next->d_name, path + len + 9 - p);
|
|
|
|
fp = fopen (path, "r");
|
|
if (fp == (FILE *) NULL)
|
|
@@ -378,7 +380,7 @@ get_categories ()
|
|
Categories *c;
|
|
|
|
if (! catfile)
|
|
- sprintf (path, "%s/gnats-adm/%s", gnats_root, CATEGORIES);
|
|
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, CATEGORIES);
|
|
else
|
|
path = catfile;
|
|
|
|
@@ -415,7 +417,7 @@ main (argc, argv)
|
|
int argc;
|
|
char **argv;
|
|
{
|
|
- int optc, i;
|
|
+ int optc;
|
|
Categories *clist, *c;
|
|
|
|
program_name = (char *) basename (argv[0]);
|