openbsd-ports/databases/gnats/patches/patch-gnats_lists_c
brad 9e8ecfb2f4 Fix some security issues with gnats.
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@
2003-08-25 23:33:56 +00:00

73 lines
1.8 KiB
Plaintext

$OpenBSD: patch-gnats_lists_c,v 1.1 2003/08/25 23:35:06 brad Exp $
--- gnats/lists.c.orig Wed Nov 25 07:15:01 1998
+++ gnats/lists.c Wed Jul 2 13:23:13 2003
@@ -33,11 +33,13 @@ get_gnats_file (type, file)
char line[STR_MAX];
char *path = (char *) alloca (PATH_MAX);
extern int doret;
+ size_t len;
if (file)
{
- outf = (char *) xmalloc (strlen (file) + 5);
- strcpy (outf, file);
+ len = strlen (file) + 5;
+ outf = (char *) xmalloc (len);
+ strlcpy (outf, file, len);
}
else
fpout = stdout;
@@ -45,37 +47,37 @@ get_gnats_file (type, file)
if (type == LIST_CATEGORIES)
{
if (outf)
- strcat (outf, ".cat");
+ strlcat (outf, ".cat", len);
infile = CATEGORIES;
}
else if (type == LIST_SUBMITTERS)
{
if (outf)
- strcat (outf, ".sub");
+ strlcat (outf, ".sub", len);
infile = SUBMITTERS;
}
else if (type == LIST_RESPONSIBLE)
{
if (outf)
- strcat (outf, ".res");
+ strlcat (outf, ".res", len);
infile = RESPONSIBLE_FILE;
}
else if (type == LIST_STATES)
{
if (outf)
- strcat (outf, ".sta");
+ strlcat (outf, ".sta", len);
infile = STATES;
}
else if (type == LIST_CLASSES)
{
if (outf)
- strcat (outf, ".cla");
+ strlcat (outf, ".cla", len);
infile = CLASSES;
}
else if (type == LIST_CONFIG)
{
if (outf)
- strcat (outf, ".cfg");
+ strlcat (outf, ".cfg", len);
infile = CONFIG;
}
else
@@ -126,7 +128,7 @@ get_gnats_file (type, file)
}
else
{
- sprintf (path, "%s/gnats-adm/%s", gnats_root, infile);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, infile);
fpin = fopen (path, "r");
if (fpin == (FILE *)NULL)
return -1; /* XXX */