remove the very outdated GNATS port

This commit is contained in:
sthen 2022-07-01 06:45:52 +00:00
parent ac8fda8251
commit e2dcd7f2b4
42 changed files with 3 additions and 2089 deletions

View File

@ -6,7 +6,6 @@
SUBDIR += evolution-data-server
SUBDIR += freetds
SUBDIR += gdbm
SUBDIR += gnats
SUBDIR += influxdb
SUBDIR += iodbc
SUBDIR += jxplorer

View File

@ -1,34 +0,0 @@
COMMENT= GNU Problem Report Management System
DISTNAME= gnats-3.113.1
REVISION= 19
CATEGORIES= databases devel
MASTER_SITES= ${MASTER_SITE_GNU:=gnats/}
HOMEPAGE= https://www.gnu.org/software/gnats/
# GPLv2+
PERMIT_PACKAGE= Yes
WANTLIB= c
NO_TEST= Yes
RUN_DEPENDS= www/p5-CGI
CONFIGURE_STYLE=gnu dest
CONFIGURE_ARGS+=--with-full-gnats --with-release-based --with-gnats-user=_gnats
CONFIGURE_ENV+= SEND_PR=/usr/bin/false
INSTALL_TARGET= install-gnats install-send-pr install-info
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/gnats/
sed "s%/var/lib%${TRUEPREFIX}/share%g" \
${WRKDIST}/gnats/gnats-db.conf > \
${PREFIX}/share/examples/gnats/gnats-db.conf
${INSTALL_PROGRAM} ${WRKDIST}/contrib/gnatsweb/gnatsweb.pl \
${PREFIX}/lib/gnatsweb
${INSTALL_DATA} ${WRKDIST}/contrib/gnatsweb/gnats.pm \
${PREFIX}/libdata/perl5/site_perl
.include <bsd.port.mk>

View File

@ -1,2 +0,0 @@
SHA256 (gnats-3.113.1.tar.gz) = wP8TM17T+Mxw4vzUgqjcjH4/4j0a7dVTVaFuc5S6OME=
SIZE (gnats-3.113.1.tar.gz) = 1120985

View File

@ -1,150 +0,0 @@
--- gnats/Makefile.in.orig Tue May 8 19:23:36 2001
+++ gnats/Makefile.in Fri Jul 8 13:28:43 2011
@@ -256,7 +256,7 @@ all-gnats: all-tools file-pr gnatsd queue-pr mail-quer
all-tools: libgnats.a query-pr nquery-pr pr-addr npr-addr pr-age pr-edit \
npr-edit pr-mail sub-type gnats-edit-pr edit-pr nedit-pr getclose \
- gnats.elc config-send-pr tools-man-pages
+ config-send-pr
libgnats.a: $(LIBOBJS)
-rm -f tmplibgnats.a libgnats.a
@@ -489,14 +489,12 @@ install-tools-arch-dep: install-tools-bin install-tool
# Create $(datadir)/gnats so that mkcat can find it
install-tools-arch-indep: all-tools
$(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gnats
- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
+ @if false; then \
echo "chown $(GNATS_USER) $(datadir)/gnats" ; \
chown $(GNATS_USER) $(datadir)/gnats ; \
else \
echo "*** Warning: Must chown $(GNATS_USER) $(datadir)/gnats" ; \
fi
- $(INSTALL_DATA) gnats.el $(lispdir)/gnats.el
- test -f gnats.elc && $(INSTALL_DATA) gnats.elc $(lispdir)/gnats.elc
install-tools-bin: all-tools
$(INSTALL_PROGRAM) query-pr $(bindir)/query-pr
@@ -512,13 +510,14 @@ install-tools-bin: all-tools
$(INSTALL_PROGRAM) npr-edit $(libexecdir)/gnats/npr-edit
$(INSTALL_PROGRAM) pr-mail $(libexecdir)/gnats/pr-mail
$(INSTALL_PROGRAM) sub-type $(bindir)/sub-type
- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
+ @if false; then \
echo "chown $(GNATS_USER) $(libexecdir)/gnats/pr-edit" ; \
echo "chmod 4555 $(libexecdir)/gnats/pr-edit" ; \
chown $(GNATS_USER) $(libexecdir)/gnats/pr-edit ; \
chmod 4555 $(libexecdir)/gnats/pr-edit ; \
else \
echo "*** Warning: Must make pr-edit suid $(GNATS_USER)" ; \
+ chmod 555 $(libexecdir)/gnats/pr-edit ; \
fi
EXTRA_INSTALL =
@@ -533,7 +532,7 @@ install-gnats-arch-indep: all-gnats install-tools-arch
$(SHELL) $(srcdir)/../mkinstalldirs $(GNATS_ROOT)/gnats-adm/locks
$(SHELL) $(srcdir)/../mkinstalldirs $(GNATS_ROOT)/gnats-queue
$(SHELL) $(srcdir)/../mkinstalldirs $(GNATS_ROOT)/pending
- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
+ @if false; then \
echo "chown $(GNATS_USER) $(GNATS_ROOT) $(GNATS_ROOT)/gnats-adm $(GNATS_ROOT)/pending"; \
echo "chown $(GNATS_USER) $(GNATS_ROOT)/gnats-adm/locks $(GNATS_ROOT)/gnats-queue" ; \
chown $(GNATS_USER) $(GNATS_ROOT) $(GNATS_ROOT)/gnats-adm $(GNATS_ROOT)/pending ; \
@@ -545,33 +544,34 @@ install-gnats-arch-indep: all-gnats install-tools-arch
echo "Not putting categories file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/categories \
+ $(INSTALL_DATA) $(srcdir)/categories \
$(GNATS_ROOT)/gnats-adm/categories ; \
fi
@if [ -f $(GNATS_ROOT)/gnats-adm/responsible ]; then \
echo "Not putting responsible file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/responsible \
+ $(INSTALL_DATA) $(srcdir)/responsible \
$(GNATS_ROOT)/gnats-adm/responsible ; \
fi
@if [ -f $(GNATS_ROOT)/gnats-adm/submitters ]; then \
echo "Not putting submitters file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/submitters \
+ $(INSTALL_DATA) $(srcdir)/submitters \
$(GNATS_ROOT)/gnats-adm/submitters ; \
fi
@if [ -f $(GNATS_ROOT)/gnats-adm/gnatsd.access ]; then \
echo "Not putting gnatsd.access file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/gnatsd.access \
+ $(INSTALL_DATA) $(srcdir)/gnatsd.access \
$(GNATS_ROOT)/gnats-adm/gnatsd.access ; \
fi
- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
+ @if false; then \
echo "chown $(GNATS_USER) $(GNATS_ROOT)/gnats-adm/gnatsd.access" ; \
chown $(GNATS_USER) $(GNATS_ROOT)/gnats-adm/gnatsd.access ; \
+ else \
echo "chmod 600 $(GNATS_ROOT)/gnats-adm/gnatsd.access" ; \
chmod 600 $(GNATS_ROOT)/gnats-adm/gnatsd.access ; \
fi
@@ -579,35 +579,35 @@ install-gnats-arch-indep: all-gnats install-tools-arch
echo "Not putting gnatsd.conf file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/gnatsd.conf \
+ $(INSTALL_DATA) $(srcdir)/gnatsd.conf \
$(GNATS_ROOT)/gnats-adm/gnatsd.conf ; \
fi
@if [ -f $(GNATS_ROOT)/gnats-adm/addresses ]; then \
echo "Not putting addresses file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/addresses \
+ $(INSTALL_DATA) $(srcdir)/addresses \
$(GNATS_ROOT)/gnats-adm/addresses ; \
fi
@if [ -f $(GNATS_ROOT)/gnats-adm/config ]; then \
echo "Not putting config file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/config \
+ $(INSTALL_DATA) $(srcdir)/config \
$(GNATS_ROOT)/gnats-adm/config ; \
fi
@if [ -f $(GNATS_ROOT)/gnats-adm/states ]; then \
echo "Not putting states file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/states \
+ $(INSTALL_DATA) $(srcdir)/states \
$(GNATS_ROOT)/gnats-adm/states ; \
fi
@if [ -f $(GNATS_ROOT)/gnats-adm/classes ]; then \
echo "Not putting classes file in gnats-adm, it's already there." ; \
true ; \
else \
- $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/classes \
+ $(INSTALL_DATA) $(srcdir)/classes \
$(GNATS_ROOT)/gnats-adm/classes ; \
fi
@echo "*** Don't forget to run $(libexecdir)/gnats/mkcat as $(GNATS_USER)."
@@ -625,7 +625,7 @@ install-gnats-bin: all-gnats install-tools-bin
$(INSTALL_PROGRAM) queue-pr $(libexecdir)/gnats/queue-pr
$(INSTALL_PROGRAM) gen-index $(libexecdir)/gnats/gen-index
$(INSTALL_SCRIPT) mail-query $(libexecdir)/gnats/mail-query
- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
+ @if false; then \
echo "chown $(GNATS_USER) $(libexecdir)/gnats/queue-pr $(libexecdir)/gnats/file-pr $(libexecdir)/gnats/gen-index" ; \
echo "chmod 4555 $(libexecdir)/gnats/queue-pr $(libexecdir)/gnats/file-pr $(libexecdir)/gnats/gen-index" ; \
echo "chown $(GNATS_USER) $(libexecdir)/gnats/gnatsd" ; \
@@ -636,6 +636,7 @@ install-gnats-bin: all-gnats install-tools-bin
chmod 555 $(libexecdir)/gnats/gnatsd ; \
else \
echo "*** Warning: must make queue-pr and gen-index suid gnats." ; \
+ chmod 555 $(libexecdir)/gnats/queue-pr $(libexecdir)/gnats/gen-index $(libexecdir)/gnats/gnatsd ; \
fi
install-info: gnats.info

View File

@ -1,11 +0,0 @@
--- gnats/client.c.orig Tue Sep 21 17:18:39 1999
+++ gnats/client.c Wed Jul 2 13:23:13 2003
@@ -485,7 +485,7 @@ client_init ()
authenticator, but a constant should be nearly as secure. */
#define CKSUM 0x10291966
- strcpy (hname, host->h_name);
+ strlcpy (hname, host->h_name, sizeof(hname));
realm = krb_realmofhost (hname);

View File

@ -1,101 +0,0 @@
--- gnats/cmds.c.orig Sun Feb 4 21:56:10 2001
+++ gnats/cmds.c Fri Jul 8 13:28:43 2011
@@ -115,28 +115,26 @@ get_text ()
{
register FILE *tf;
char *path = (char *) xmalloc (PATH_MAX);
-#ifndef HAVE_MKTEMP
- char name[L_tmpnam];
-#endif
char *buf, *tmpdir;
MsgType r;
- int i;
+ int i, fd;
tmpdir = getenv ("TMPDIR");
if (tmpdir == NULL)
tmpdir = "/tmp"; /* XXX */
-#ifdef HAVE_MKTEMP
- sprintf (path, "%s/gnatsXXXXXX", tmpdir);
- mktemp (path);
-#else
- tmpnam (name);
- strcpy (path, name);
-#endif
-
- if ((tf = fopen (path, "w")) == (FILE *) NULL)
+
+ snprintf (path, PATH_MAX, "%s/gnatsXXXXXX", tmpdir);
+ if ((fd = mkstemp (path)) < 0)
{
+ xfree(path);
+ return (NULL);
+ }
+
+ if ((tf = fdopen (fd, "w")) == (FILE *) NULL)
+ {
/* give error that we can't create the temp and leave. */
- xfree (path);
+ close(fd);
+ xfree(path);
return NULL;
}
@@ -228,8 +226,8 @@ do_query (ac, av)
p = av[i];
if ((n = (char *) strchr (p, '/')) != NULL) /* Remove the category */
p = ++n;
- strcpy (pat, p);
- strcat (pat, "\\'");
+ strlcpy (pat, p, sizeof(pat));
+ strlcat (pat, "\\'", sizeof(pat));
for (j = index_chain ; j ; j = j->next)
if (regcmp (pat, j->number) == 0)
{
@@ -352,12 +350,13 @@ GNATS_lock (ac, av)
/* XXX FIXME -- we need a cleaner approach to this. */
for (i = 2, len = 0; i < ac; i++)
len += strlen (av[i]);
- l = (char *) xmalloc (sizeof (char) * len + ac - 2);
- sprintf (l, "%s", av[2]);
+ len += ac - 2;
+ l = (char *) xmalloc (len);
+ snprintf (l, len, "%s", av[2]);
for (i = 3; i < ac; i++)
{
- strcat (l, " ");
- strcat (l, av[i]);
+ strlcat (l, " ", len);
+ strlcat (l, av[i], len);
}
}
@@ -461,7 +460,7 @@ GNATS_user (ac, av)
}
path = (char *) xmalloc (PATH_MAX);
- sprintf (path, "%s/gnats-adm/%s", gnats_root, DB_ACCESS_FILE);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, DB_ACCESS_FILE);
access = get_user_access (gnats_root, path, av[0], av[1]);
xfree (path);
@@ -1531,8 +1530,8 @@ GNATS_auth (ac, av)
return;
}
- strcpy (keyfile, gnats_root);
- strcat (keyfile, "/gnats-adm/srvtab");
+ strlcpy (keyfile, gnats_root, sizeof(keyfile));
+ strlcat (keyfile, "/gnats-adm/srvtab", sizeof(keyfile));
/* Sanity-check installation. */
{
struct stat statbuf;
@@ -1601,7 +1600,7 @@ GNATS_auth (ac, av)
p += 8;
k.ticket.length = strlen (p) / 2;
fromhex (k.ticket.dat, p, k.ticket.length);
- strcpy (instance, "*");
+ strlcpy (instance, "*", sizeof(instance));
status = krb_rd_req (&k.ticket, GNATS_KRB4_PRINCIPAL_NAME, instance,
peer.sin_addr.s_addr, &k.auth, keyfile);
if (status != KSUCCESS)

View File

@ -1,58 +0,0 @@
--- gnats/config.c.orig Thu Nov 5 12:54:11 1998
+++ gnats/config.c Wed Jul 2 13:23:13 2003
@@ -106,6 +106,7 @@ configure()
{
FILE *fp;
char line[STR_MAX];
+ size_t len;
#ifndef STDCINIT
confs[0].key = "GNATS_ADDR"; confs[0].val = gnats_addr;
@@ -140,8 +141,9 @@ configure()
xfree (fname);
#define CONFSTR "%s/gnats-adm/config"
- fname = xmalloc (strlen (gnats_root) + sizeof (CONFSTR) - 1);
- sprintf (fname, CONFSTR, gnats_root);
+ len = strlen (gnats_root) + sizeof (CONFSTR) - 1;
+ fname = xmalloc (len);
+ snprintf (fname, len, CONFSTR, gnats_root);
fp = fopen (fname, "r");
@@ -163,10 +165,10 @@ configure()
{
/* Mimic somewhat the sh interpretation of the line. */
if (*p == '\'')
- strcpy (confs[i].val, safe_strtok(p+1, "'"));
+ strlcpy (confs[i].val, safe_strtok(p+1, "'"), n+1);
else if (*p == '"')
- strcpy (confs[i].val, string_extract_double_quoted(p+1));
- else strcpy (confs[i].val, safe_strtok(p, " \t\n"));
+ strlcpy (confs[i].val, string_extract_double_quoted(p+1), n+1);
+ else strlcpy (confs[i].val, safe_strtok(p, " \t\n"), n+1);
}
break;
}
@@ -196,9 +198,11 @@ string_extract_double_quoted (string)
register int c, j, i; /* character, temp pos, str pos */
char *temp; /* The new string we return. */
int pass_next; /* State variables for the machine. */
+ size_t len;
pass_next = 0;
- temp = (char *)xmalloc (strlen (string) + 1);
+ len = strlen (string) + 1;
+ temp = (char *)xmalloc (len);
for (j = 0, i = 0; (c = string[i]) != '\0'; i++)
{
@@ -234,7 +238,7 @@ string_extract_double_quoted (string)
temp[j++] = c;
}
temp[j] = '\0';
- strcpy (string, temp);
+ strlcpy (string, temp, len);
xfree (temp);
return (string);
}

View File

@ -1,20 +0,0 @@
--- gnats/db_conf.c.orig Wed Sep 22 04:31:01 1999
+++ gnats/db_conf.c Fri Dec 28 18:00:24 2007
@@ -47,7 +47,7 @@ Software Foundation, 59 Temple Place - Suite 330, Bost
static int get_conf_key_list_and_count PARAMS((Conf_entry *list, char ***keys,
int *count));
static int get_conf_entry_count PARAMS(( Conf_entry *head));
-static int get_conf_keys PARAMS((Conf_entry *ptr, char ***keys,
+static void get_conf_keys PARAMS((Conf_entry *ptr, char ***keys,
int count));
static Conf_entry *lookup_conf_entry PARAMS((Conf_entry *head, char *key));
static Conf_entry *add_conf_entry PARAMS((Conf_entry **head, char *key,
@@ -262,7 +262,7 @@ get_conf_entry_count(head)
}
/* private function to load keys into a dynamic array */
-static int
+static void
get_conf_keys(ptr, keys, count)
Conf_entry *ptr;
char ***keys;

View File

@ -1,78 +0,0 @@
--- gnats/edit.c.orig Wed Mar 17 16:45:37 1999
+++ gnats/edit.c Wed Jul 2 13:23:13 2003
@@ -89,7 +89,7 @@ modify_pr (fp)
{
t = get_date (date, NULL);
new_index->date_required = (char *) xmalloc (18);
- sprintf (new_index->date_required, "%d", t);
+ snprintf (new_index->date_required, 18, "%d", t);
}
new_index->quarter = field_value (QUARTER);
new_index->keywords = field_value (KEYWORDS);
@@ -103,7 +103,7 @@ modify_pr (fp)
{
t = get_date (date, NULL);
new_index->arrival_date = (char *) xmalloc (18);
- sprintf (new_index->arrival_date, "%d", t);
+ snprintf (new_index->arrival_date, 18, "%d", t);
}
new_index->class = field_value (CLASS);
new_index->originator = field_value (ORIGINATOR);
@@ -164,13 +164,13 @@ modify_pr (fp)
program_name, lock_path, strerror (errno));
}
old_path = (char *) xmalloc (PATH_MAX);
- sprintf (old_path, "%s/%s/%s", gnats_root, old_index->category,
- old_index->number);
+ snprintf (old_path, PATH_MAX, "%s/%s/%s", gnats_root,
+ old_index->category, old_index->number);
/* set this to be the file to be saved. now called .old. */
bkup_path = (char *) xmalloc (PATH_MAX);
- sprintf (bkup_path, "%s/%s/%s.old", gnats_root, old_index->category,
- old_index->number);
+ snprintf (bkup_path, PATH_MAX, "%s/%s/%s.old", gnats_root,
+ old_index->category, old_index->number);
}
else
add_to_index ();
@@ -182,15 +182,15 @@ modify_pr (fp)
if (! force)
{
if (strcmp (old_index->category, new_index->category) != 0)
- sprintf (path, "%s/%s/%s", gnats_root, new_index->category,
- new_index->number);
+ snprintf (path, PATH_MAX, "%s/%s/%s", gnats_root, new_index->category,
+ new_index->number);
else
- sprintf (path, "%s/%s/%s", gnats_root, old_index->category,
- old_index->number);
+ snprintf (path, PATH_MAX, "%s/%s/%s", gnats_root, old_index->category,
+ old_index->number);
}
else
- sprintf (path, "%s/%s/%s", gnats_root, new_index->category,
- new_index->number);
+ snprintf (path, PATH_MAX, "%s/%s/%s", gnats_root, new_index->category,
+ new_index->number);
if (! force && rename (old_path, bkup_path) < 0)
{
@@ -289,7 +289,7 @@ modify_pr (fp)
{
t = get_date (date, NULL);
new_index->last_modified = (char *) xmalloc (18);
- sprintf (new_index->last_modified, "%d", t);
+ snprintf (new_index->last_modified, 18, "%d", t);
}
date = field_value (CLOSED_DATE);
if (!date || date[0] == '\0')
@@ -298,7 +298,7 @@ modify_pr (fp)
{
t = get_date (date, NULL);
new_index->closed_date = (char *) xmalloc (18);
- sprintf (new_index->closed_date, "%d", t);
+ snprintf (new_index->closed_date, 18, "%d", t);
}
write_header (prfile, NUM_HEADER_ITEMS);

View File

@ -1,229 +0,0 @@
--- gnats/file-pr.c.orig Tue May 8 16:09:45 2001
+++ gnats/file-pr.c Fri Dec 28 18:00:24 2007
@@ -51,7 +51,6 @@ gnats (fp)
char *subject = NULL, *synopsis = NULL;
char *p;
char message[STR_MAX];
- char *from_address;
mode_t mode;
struct stat sbuf;
@@ -97,7 +96,8 @@ gnats (fp)
bug_group = field_value (CATEGORY);
if (find_category (&category, bug_group) == -1)
{
- sprintf (message, "%s from: %s\n", default_category, bug_group);
+ snprintf (message, sizeof(message), "%s from: %s\n", default_category,
+ bug_group);
log_msg (LOG_INFO, 1, "resetting bug category to ", message);
bug_group = default_category;
set_field (CATEGORY, default_category);
@@ -170,7 +170,7 @@ gnats (fp)
/* The `Subject:' line is assumed to have a newline at the end. */
int l = strlen (synopsis);
char *buf = (char *) xmalloc (l + 2);
- strcpy (buf, synopsis);
+ strlcpy (buf, synopsis, l + 2);
buf[l] = '\n';
buf[l + 1] = '\0';
set_header (SUBJECT, buf);
@@ -209,7 +209,7 @@ gnats (fp)
/* Put together the path to where the bug will be stored. If the dir
is not there, and the category is the default, auto-create that one,
if we want to. If not, make the bug pending, and store in there. */
- sprintf (path, "%s/%s", gnats_root, bug_group);
+ snprintf (path, PATH_MAX, "%s/%s", gnats_root, bug_group);
err = stat (path, &sbuf);
if (err == -1 && !flag_autocreate)
{
@@ -217,7 +217,7 @@ gnats (fp)
set_field (CATEGORY, default_category);
log_msg (LOG_INFO, 1, "directory does not exist, changing to default:",
path);
- sprintf (path, "%s/%s", gnats_root, bug_group);
+ snprintf (path, PATH_MAX, "%s/%s", gnats_root, bug_group);
err = stat (path, &sbuf);
}
@@ -254,7 +254,7 @@ gnats (fp)
/* Retrieve a unique bug number. */
bug_number = get_bug_number ();
- sprintf (number, "%d", bug_number);
+ snprintf (number, sizeof(number), "%d", bug_number);
set_field (NUMBER, number);
/* Make sure all the values are ok; patch in any bogons, and keep
@@ -262,8 +262,8 @@ gnats (fp)
bad_enums = check_enum_types (1);
/* Write the file out. */
- sprintf (bug_name, "%s/%d", bug_group, bug_number);
- sprintf (path, "%s/%s", gnats_root, bug_name);
+ snprintf (bug_name, sizeof(bug_name), "%s/%d", bug_group, bug_number);
+ snprintf (path, PATH_MAX, "%s/%s", gnats_root, bug_name);
create_report (path, 1);
log_msg (LOG_INFO, 1, "PR written out:", path);
@@ -345,9 +345,10 @@ run_atpr (submitter, expired, bug_name, path)
int len, i;
static char *ats[] = { "/usr/bin/at", "/bin/at", NULL };
- at_pr = (char *) xmalloc (strlen (bindir) + 7);
- strcpy (at_pr, bindir);
- strcat (at_pr, "/at-pr");
+ len = strlen (bindir) + 7;
+ at_pr = (char *) xmalloc (len);
+ strlcpy (at_pr, bindir, len);
+ strlcat (at_pr, "/at-pr", len);
len = strftime (buf, GNATS_TIME_LENGTH, "%H:%M %b %d", expired);
@@ -355,8 +356,9 @@ run_atpr (submitter, expired, bug_name, path)
{
if (access (ats[i], X_OK) == 0)
{
- command = (char *) xmalloc (len + strlen (ats[i]) + 2);
- sprintf (command, "%s %s", ats[i], buf);
+ len += strlen (ats[i]) + 2;
+ command = (char *) xmalloc (len);
+ snprintf (command, len, "%s %s", ats[i], buf);
break;
}
}
@@ -410,7 +412,7 @@ check_if_reply ()
if (*s == '\0')
return NULL;
- strcpy (token, s);
+ strlcpy (token, s, sizeof(token));
s = token;
re_set_syntax (RE_NO_BK_PARENS);
@@ -487,7 +489,7 @@ check_if_reply ()
else
{
path = xmalloc (PATH_MAX);
- sprintf (path, "%s/%s", gnats_root, s + start);
+ snprintf (path, PATH_MAX, "%s/%s", gnats_root, s + start);
}
if (stat (path, &buf) == -1)
{
@@ -513,12 +515,11 @@ derive_submitter ()
char *compare;
char *name, *alias, *s, *t;
- int i, start, end;
FILE *fp;
from_address = header_value (FROM);
- strcpy (from_string, from_address);
+ strlcpy (from_string, from_address, sizeof(from_string));
if ((*from_string == '\0') || (*from_string == '\n'))
{
@@ -540,7 +541,7 @@ derive_submitter ()
if ((*t == ' ') || (*t == '\n'))
*t = '\0';
}
- sprintf (path, "%s/gnats-adm/addresses", gnats_root);
+ snprintf (path, sizeof(path), "%s/gnats-adm/addresses", gnats_root);
if ((fp = fopen (path, "r")) == (FILE *) NULL)
{
xfree (token);
@@ -686,8 +687,8 @@ append_notify (person)
notify = (char *) xrealloc (notify, notify_size);
}
- strcat (notify, n);
- strcat (notify, ", ");
+ strlcat (notify, n, STR_MAX);
+ strlcat (notify, ", ", STR_MAX);
notify_len += i + 2;
p = start;
@@ -701,14 +702,15 @@ append_notify (person)
}
static void
-try_append_notify (notify, string)
+try_append_notify (notify, string, len)
char *notify;
char *string;
+ size_t len;
{
char *try = append_notify (string);
if (try != NULL)
{
- strcat (notify, try);
+ strlcat (notify, try, len);
xfree (try);
}
}
@@ -729,13 +731,13 @@ notify_responsible (responsible, subcontact, subnotify
notify[0] = '\0';
- try_append_notify (notify, subcontact);
- try_append_notify (notify, subnotify);
- try_append_notify (notify, cnotify);
+ try_append_notify (notify, subcontact, BUFSIZ);
+ try_append_notify (notify, subnotify, BUFSIZ);
+ try_append_notify (notify, cnotify, BUFSIZ);
{
char *gnotify = (char *) strdup (header_value (X_GNATS_NOTIFY));
- try_append_notify (notify, gnotify);
+ try_append_notify (notify, gnotify, BUFSIZ);
xfree (gnotify);
}
@@ -897,7 +899,7 @@ append_report (infile, filename)
time_t t;
/* Where to keep the static index if necessary. */
Index *current_index = (Index *)NULL;
- Index *i, *prev_index = NULL, *old_index = NULL;
+ Index *i;
/* Save the values we read while in main(). */
from = (char *) strdup (header_value (FROM));
@@ -934,15 +936,15 @@ append_report (infile, filename)
/* Separate this from the rest of the audit trail. */
APPEND_STRING ((char*)"\n", buf, b, buf_len, buf_max, l, 0);
- sprintf (line, "From: %s", from);
+ snprintf (line, STR_MAXLONG, "From: %s", from);
APPEND_STRING (line, buf, b, buf_len, buf_max, l, 0);
- sprintf (line, "To: %s", to);
+ snprintf (line, STR_MAXLONG, "To: %s", to);
APPEND_STRING (line, buf, b, buf_len, buf_max, l, 0);
- sprintf (line, "Cc: %s", cc);
+ snprintf (line, STR_MAXLONG, "Cc: %s", cc);
APPEND_STRING (line, buf, b, buf_len, buf_max, l, 0);
- sprintf (line, "Subject: %s", subject);
+ snprintf (line, STR_MAXLONG, "Subject: %s", subject);
APPEND_STRING (line, buf, b, buf_len, buf_max, l, 0);
- sprintf (line, "Date: %s", date);
+ snprintf (line, STR_MAXLONG, "Date: %s", date);
APPEND_STRING (line, buf, b, buf_len, buf_max, l, 0);
APPEND_STRING ((char*)"\n", buf, b, buf_len, buf_max, l, 0);
@@ -988,7 +990,7 @@ append_report (infile, filename)
{
t = get_date (date, NULL);
i->last_modified = (char *) xmalloc (18);
- sprintf (i->last_modified, "%d", t);
+ snprintf (i->last_modified, 18, "%d", t);
/* write out the new index. */
write_index (current_index);
break;
@@ -1073,7 +1075,7 @@ get_bug_number ()
/* First try to find and lock the gnats lock file. We need this since
they want every bug to have a unique number. If lock doesn't exist,
make it, if possible. */
- sprintf (sbuf, "%s/gnats-adm/current", gnats_root);
+ snprintf (sbuf, sizeof(sbuf), "%s/gnats-adm/current", gnats_root);
block_signals ();

View File

@ -1,126 +0,0 @@
--- gnats/files.c.orig Sun Feb 11 22:36:25 2001
+++ gnats/files.c Fri Dec 28 18:00:24 2007
@@ -41,7 +41,7 @@ find_submitter (cptr, site)
if (site == NULL)
return -1;
- sprintf (path, "%s/gnats-adm/%s", gnats_root, SUBMITTERS);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, SUBMITTERS);
err = get_adm_record (path, array, site);
if (err == -1)
@@ -87,7 +87,7 @@ find_category (cptr, category)
char **array = (char **) alloca (NUM_CATEGORY_FIELDS * sizeof (char *));
int err;
- sprintf (path, "%s/gnats-adm/%s", gnats_root, CATEGORIES);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, CATEGORIES);
err = get_adm_record (path, array, category);
if (err == -1)
@@ -143,7 +143,7 @@ find_responsible (responsible, person)
we don't end up with garbage. */
memset (array, 0, NUM_RESPONSIBLE_FIELDS * sizeof (char *));
- sprintf (path, "%s/gnats-adm/%s", gnats_root, RESPONSIBLE_FILE);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, RESPONSIBLE_FILE);
err = get_adm_record (path, array, person);
xfree (path);
if (err == -1)
@@ -177,13 +177,15 @@ get_adm_record (fname, ptr, key)
char line[STR_MAX], temp[STR_MAX];
char *l, *l2;
char *keyed;
+ size_t keyedsize;
int err = -1, keyedlen;
/* append a delimiting ':' to the end of sting to make sure the match
is fully correct. */
- keyed = (char *) alloca (strlen(key) + 2);
- /* which is slower - strcpy/strcat or sprintf? */
- sprintf (keyed, "%s:", key);
+ keyedsize = strlen(key) + 2;
+ keyed = (char *) alloca (keyedsize);
+ /* which is slower - strlcpy/strlcat or snprintf? */
+ snprintf (keyed, keyedsize, "%s:", key);
keyedlen = strlen(keyed);
fp = fopen (fname,"r");
@@ -271,7 +273,7 @@ init_responsibles ()
char *path = (char *) alloca (PATH_MAX);
memset (array, 0, NUM_RESPONSIBLE_FIELDS * sizeof (char *));
- sprintf (path, "%s/gnats-adm/%s", gnats_root, RESPONSIBLE_FILE);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, RESPONSIBLE_FILE);
fp = fopen (path, "r");
if (fp == NULL)
return 0;
@@ -358,7 +360,7 @@ init_classes ()
int i, nerrs = 0;
memset (array, 0, NUM_CLASS_FIELDS * sizeof (char *));
- sprintf (path, "%s/gnats-adm/%s", gnats_root, CLASSES);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, CLASSES);
fp = fopen (path, "r");
if (fp == NULL)
@@ -549,11 +551,11 @@ get_class_enum_field ()
line = xmalloc (totlen * sizeof(char));
line[0] = '\0';
c = class_chain;
- strcat (line, c->key);
+ strlcat (line, c->key, totlen);
for (c = c->next; c; c = c->next)
{
- strcat (line, " | ");
- strcat (line, c->key);
+ strlcat (line, " | ", totlen);
+ strlcat (line, c->key, totlen);
}
return line;
}
@@ -593,7 +595,7 @@ init_states ()
int i, nerrs = 0;
memset (array, 0, NUM_STATE_FIELDS * sizeof (char *));
- sprintf (path, "%s/gnats-adm/%s", gnats_root, STATES);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, STATES);
fp = fopen (path, "r");
if (fp == NULL)
@@ -779,11 +781,11 @@ get_state_enum_field ()
char line[STR_MAX];
line[0] = '\0';
s = state_chain;
- strcat (line, s->key);
+ strlcat (line, s->key, sizeof(line));
for (s = s->next; s; s = s->next)
{
- strcat (line, " | ");
- strcat (line, s->key);
+ strlcat (line, " | ", sizeof(line));
+ strlcat (line, s->key, sizeof(line));
}
return (strdup (line));
}
@@ -901,7 +903,7 @@ get_responsible_addr (full, strict, name)
{
address = (char *) xmalloc (STR_MAX);
if (full)
- sprintf (address, "%s:%s:%s", r->key, r->fullname, r->alias);
+ snprintf (address, STR_MAX, "%s:%s:%s", r->key, r->fullname, r->alias);
else
{
if (r->alias[0]
@@ -909,9 +911,9 @@ get_responsible_addr (full, strict, name)
added a space after the colon, we don't accept that as
an address. */
&& isalpha (r->alias[0]))
- sprintf (address, "%s", r->alias);
+ snprintf (address, STR_MAX, "%s", r->alias);
else
- sprintf (address, "%s", r->key);
+ snprintf (address, STR_MAX, "%s", r->key);
}
}

View File

@ -1,80 +0,0 @@
--- 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]);

View File

@ -1,38 +0,0 @@
--- gnats/gen-index.c.orig Tue Sep 21 17:18:39 1999
+++ gnats/gen-index.c Wed Jul 2 13:23:13 2003
@@ -118,7 +118,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
@@ -127,7 +127,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)
@@ -150,7 +150,7 @@ do_category (c)
read_pr (fp, 1);
fclose (fp);
- create_index_entry (line);
+ create_index_entry (line, STR_MAXLONG);
if (sort_numerical == TRUE)
{
@@ -256,7 +256,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;

View File

@ -1,11 +0,0 @@
--- gnats/getclose.c.orig Wed Nov 25 07:14:57 1998
+++ gnats/getclose.c Wed Jul 2 13:23:13 2003
@@ -136,7 +136,7 @@ do_prlist ()
if (check_state_type (i->state, "closed")
&& regcmp ("no", i->confidential) == 0)
{
- sprintf (path, "%s/%s/%s", gnats_root, i->category, i->number);
+ snprintf (path, PATH_MAX, "%s/%s/%s", gnats_root, i->category, i->number);
do_stat (path, path + len + 1);
}

View File

@ -1,46 +0,0 @@
--- gnats/getdate.c.orig Tue Feb 20 21:45:43 2001
+++ gnats/getdate.c Fri Dec 28 18:00:24 2007
@@ -51,6 +51,7 @@
#endif
#include <stdio.h>
+#include <stdlib.h>
#include <ctype.h>
#if defined (vms)
@@ -1225,6 +1226,7 @@ yyerrlab: /* here on detecting error */
{
int size = 0;
char *msg;
+ size_t msgsize;
int x, count;
count = 0;
@@ -1233,10 +1235,11 @@ yyerrlab: /* here on detecting error */
x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
+ msgsize = size + 15;
+ msg = (char *) malloc(msgsize);
if (msg != 0)
{
- strcpy(msg, "parse error");
+ strlcpy(msg, "parse error", msgsize);
if (count < 5)
{
@@ -1245,9 +1248,10 @@ yyerrlab: /* here on detecting error */
x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
{
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- strcat(msg, yytname[x]);
- strcat(msg, "'");
+ strlcat(msg, count == 0 ? ", expecting `" : " or `",
+ msgsize);
+ strlcat(msg, yytname[x], msgsize);
+ strlcat(msg, "'", msgsize);
count++;
}
}

View File

@ -1,11 +0,0 @@
--- gnats/gnats.h.orig Wed Nov 25 15:14:47 1998
+++ gnats/gnats.h Fri Dec 28 18:00:24 2007
@@ -234,7 +234,7 @@ extern FILE *open_index PARAMS((void));
extern time_t stat_index PARAMS((char *));
extern int check_index PARAMS((void));
extern char *find_pr_category PARAMS((FILE *, char *));
-extern void create_index_entry PARAMS((char *));
+extern void create_index_entry PARAMS((char *, size_t));
extern Index *next_index_entry PARAMS((FILE *));
extern void close_index PARAMS((FILE *));
extern Index *get_index PARAMS((void));

View File

@ -1,38 +0,0 @@
--- gnats/gnatsd.c.orig Wed Sep 22 01:18:39 1999
+++ gnats/gnatsd.c Fri Dec 28 18:00:24 2007
@@ -237,7 +237,7 @@ get_name (host)
return NULL;
i = strlen (hp->h_name);
buf = (char *) xmalloc (i + 1);
- strcpy (buf, hp->h_name);
+ strlcpy (buf, hp->h_name, i + 1);
hp = gethostbyname (buf);
if (hp == NULL)
return NULL;
@@ -336,7 +336,7 @@ allowed (host, ipaddr, database, access)
field to control what PRs, categories, or submitter-id PRs are
allowed, or whatever. */
- sprintf (filename, "%s/gnats-adm/%s", database, ACCESS_FILE);
+ snprintf (filename, PATH_MAX, "%s/gnats-adm/%s", database, ACCESS_FILE);
acc = fopen (filename, "r");
if (acc == (FILE *)NULL)
{
@@ -397,7 +397,7 @@ get_user_access (database, filename, user, passwd)
{
FILE *acc;
char buffer[BUFSIZ], *x;
- char *fields[4], *db;
+ char *fields[4];
int i, access;
int found = 0;
@@ -624,7 +624,7 @@ Argify(line, argvp, cp)
line++;
i = strlen(line);
p = (char *) xmalloc (sizeof (char) * (i + 1));
- strcpy(p, line);
+ strlcpy(p, line, i + 1);
/* Allocate worst-case amount of space. */
*argvp = argv = (char **) xmalloc (sizeof (char *) * (i + 2));

View File

@ -1,25 +0,0 @@
--- gnats/headers.c.orig Thu Nov 5 12:54:10 1998
+++ gnats/headers.c Wed Jul 2 13:23:13 2003
@@ -62,17 +62,18 @@ set_continued_header (i, buf)
char *buf;
{
char *b;
+ size_t len;
if (header[i].value != NULL)
{
if (keep_rec && i == RECEIVED)
{
- b = (char *) xmalloc (strlen (header[i].value) + 10
- + strlen (buf) + 1);
+ len = strlen (header[i].value) + 10 + strlen (buf) + 1;
+ b = (char *) xmalloc (len);
if (*buf == ' ')
- sprintf (b, "%sReceived:%s", header[i].value, buf);
+ snprintf (b, len, "%sReceived:%s", header[i].value, buf);
else
- sprintf (b, "%sReceived: %s", header[i].value, buf);
+ snprintf (b, len, "%sReceived: %s", header[i].value, buf);
xfree (header[i].value);
xfree (buf);
header[i].value = b;

View File

@ -1,51 +0,0 @@
--- gnats/index.c.orig Wed Mar 17 16:45:38 1999
+++ gnats/index.c Wed Jul 2 13:23:13 2003
@@ -33,8 +33,9 @@ time_t index_mtime;
char *index_filename = (char *)NULL;
void
-create_index_entry (buf)
+create_index_entry (buf, bufsize)
char *buf;
+ size_t bufsize;
{
char *resp, *r;
char *tim;
@@ -96,7 +97,8 @@ create_index_entry (buf)
*r = '\0';
#ifdef GNATS_RELEASE_BASED
- sprintf (buf, "%s/%s|%s|%s|%s|%s|%s|%s|%d|%s|%s|%d|%d|%d|%s|%s|%s|%s\n",
+ snprintf (buf, bufsize,
+ "%s/%s|%s|%s|%s|%s|%s|%s|%d|%s|%s|%d|%d|%d|%s|%s|%s|%s\n",
field_value (CATEGORY), field_value (NUMBER), field_value (SUBMITTER),
resp, field_value (STATE), field_value (CONFIDENTIAL),
field_value (SEVERITY), field_value (PRIORITY),
@@ -105,7 +107,8 @@ create_index_entry (buf)
field_value (CLASS), field_value (ORIGINATOR),
field_value (RELEASE), field_value (SYNOPSIS));
#else
- sprintf (buf, "%s/%s|%s|%s|%s|%s|%s|%s|%d|%d|%d|%s|%s|%s|%s\n",
+ snprintf (buf, bufsize,
+ "%s/%s|%s|%s|%s|%s|%s|%s|%d|%d|%d|%s|%s|%s|%s\n",
field_value (CATEGORY), field_value (NUMBER), field_value (SUBMITTER),
resp, field_value (STATE), field_value (CONFIDENTIAL),
field_value (SEVERITY), field_value (PRIORITY),
@@ -399,7 +402,7 @@ open_index ()
if (! index_filename)
{
index_filename = (char *) xmalloc (PATH_MAX);
- sprintf (index_filename, "%s/gnats-adm/%s", gnats_root, INDEX);
+ snprintf (index_filename, PATH_MAX, "%s/gnats-adm/%s", gnats_root, INDEX);
}
fp = fopen (index_filename, "r");
@@ -478,7 +481,7 @@ get_category (p)
return NULL;
path = (char *) xmalloc (PATH_MAX);
- sprintf (path, "%s/%s/%s", gnats_root, category, p);
+ snprintf (path, PATH_MAX, "%s/%s/%s", gnats_root, category, p);
return path;
}

View File

@ -1,127 +0,0 @@
--- gnats/internal.c.orig Wed Mar 3 01:18:53 1999
+++ gnats/internal.c Fri Jul 8 13:28:43 2011
@@ -32,28 +32,25 @@ write_index (index_start)
FILE *fp;
char *path, *workfile;
-#ifndef HAVE_MKTEMP
- char name[L_tmpnam];
-#endif
+ int fd;
Index *i;
+ size_t len;
-#ifdef HAVE_MKTEMP
- workfile = (char *) xmalloc (strlen (gnats_root) +
- strlen ("/gnats-adm/indXXXXXX") +
- 1 /* null */ );
- sprintf (workfile, "%s/gnats-adm/indXXXXXX", gnats_root);
- mktemp (workfile);
-#else
- workfile = (char *) xmalloc (L_tmpnam);
- tmpnam (name);
- strcpy (workfile, name);
-#endif
+ len = strlen (gnats_root) + strlen ("/gnats-adm/indXXXXXX") + 1 /* null */;
+ workfile = (char *) xmalloc (len);
+ snprintf (workfile, len, "%s/gnats-adm/indXXXXXX", gnats_root);
- fp = fopen (workfile, "w");
- if (fp == NULL)
+ if ((fd = mkstemp (workfile)) < 0) {
+ fprintf (stderr, "%s: can't open the temporary file %s\n",
+ program_name, workfile);
+ xfree (workfile);
+ return;
+ }
+ if ((fp = fdopen (fd, "w")) == NULL)
{
fprintf (stderr, "%s: can't open the temporary file %s\n",
program_name, workfile);
+ close(fd);
xfree (workfile);
return;
}
@@ -83,15 +80,14 @@ write_index (index_start)
#endif
}
+ fchmod (fileno(fp), 0644);
fclose (fp);
block_signals ();
- path = (char *) xmalloc (strlen (gnats_root) +
- strlen ("/gnats-adm/") +
- strlen (INDEX) +
- 1 /* null*/ );
- sprintf (path, "%s/gnats-adm/%s", gnats_root, INDEX);
+ len = strlen (gnats_root) + strlen ("/gnats-adm/") + strlen (INDEX) + 1;
+ path = (char *) xmalloc (len);
+ snprintf (path, len, "%s/gnats-adm/%s", gnats_root, INDEX);
if ((rename (workfile, path)) < 0)
{
@@ -124,14 +120,14 @@ add_to_index ()
block_signals ();
- sprintf (path, "%s/gnats-adm/%s", gnats_root, INDEX);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, INDEX);
fp = fopen (path, "a+");
if (fp == NULL)
punt (1, "Can't append to the GNATS index file (%s).", path);
memset ((void *) buf, 0, sizeof (STR_MAXLONG));
- create_index_entry (buf);
+ create_index_entry (buf, STR_MAXLONG);
fputs (buf, fp);
fclose (fp);
@@ -227,7 +223,7 @@ is_gnats_locked ()
{
char *path = (char *) alloca (PATH_MAX);
struct stat buf;
- sprintf (path, "%s/gnats-adm/gnats.lock", gnats_root);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/locks/gnats.lock", gnats_root);
return stat (path, &buf) == 0;
}
@@ -238,7 +234,7 @@ lock_gnats ()
struct stat buf;
int count;
- sprintf (path, "%s/gnats-adm/gnats.lock", gnats_root);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/locks/gnats.lock", gnats_root);
#define MAXWAIT 10
#define GRANULARITY 1
@@ -287,7 +283,7 @@ unlock_gnats ()
char *path = (char *) alloca (PATH_MAX);
struct stat buf;
- sprintf (path, "%s/gnats-adm/gnats.lock", gnats_root);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/locks/gnats.lock", gnats_root);
if (stat (path, &buf) < 0)
{
@@ -325,7 +321,7 @@ gnats_locked ()
char *path = (char *) xmalloc (PATH_MAX);
struct stat buf;
- sprintf (path, "%s/gnats-adm/gnats.lock", gnats_root);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/locks/gnats.lock", gnats_root);
if (stat (path, &buf) < 0)
return 0;
@@ -460,7 +456,8 @@ get_lock_path (fname)
return NULL;
path = (char *) xmalloc (PATH_MAX);
- sprintf (path, "%s/gnats-adm/locks/%s.lock", gnats_root, get_prid_from_path (fname));
+ snprintf (path, PATH_MAX, "%s/gnats-adm/locks/%s.lock", gnats_root,
+ get_prid_from_path (fname));
return path;
}

View File

@ -1,71 +0,0 @@
--- 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 */

View File

@ -1,38 +0,0 @@
--- gnats/misc.c.orig Wed Nov 25 09:15:04 1998
+++ gnats/misc.c Tue Jul 1 20:24:07 2008
@@ -71,15 +71,15 @@ log_msg (severity, has_arg, va_alist)
message2 = va_arg (args, char *);
if (has_arg)
- sprintf (buf, "%s: %s %s\n", program_name, message, message2);
+ snprintf (buf, STR_MAX, "%s: %s %s\n", program_name, message, message2);
else
- sprintf (buf, "%s: %s\n", program_name, message);
+ snprintf (buf, STR_MAX, "%s: %s\n", program_name, message);
if (debug_level >= severity)
{
#ifdef HAVE_SYSLOG_H
if (log_method == SYSLOG)
- syslog (severity, buf);
+ syslog (severity, "%s", buf);
else
#endif
if (gnats_logfile != (FILE *) NULL)
@@ -170,14 +170,14 @@ get_next_field (line, token, delim)
*t = '\0';
/* erase whitespace at the end of the token */
- while ((t > token) && (is_space[*(t-1)]))
+ while ((t > token) && (is_space[(u_char)*(t-1)]))
*--t = '\0';
if (! *line)
return NULL;
/* skip over any white space after delim */
- while (*line != '\0' && is_space[*++line])
+ while (*line != '\0' && is_space[(u_char)*++line])
/* Nothing */ ;
t = strchr (line, '\n');

View File

@ -1,11 +0,0 @@
--- gnats/mk_auth.c.orig Thu Nov 5 20:54:10 1998
+++ gnats/mk_auth.c Fri Dec 28 18:00:24 2007
@@ -140,7 +140,7 @@ krb_mk_auth(options, ticket, service, inst, realm, che
#ifdef ATHENA_COMPAT
/* this is only for compatibility with old servers */
if (options & KOPT_DO_OLDSTYLE) {
- (void) sprintf(buf->dat,"%d ",ticket->length);
+ (void) snprintf(buf->dat, sizeof(buf->dat), "%d ", ticket->length);
(void) write(fd, buf, strlen(buf));
(void) write(fd, (char *) ticket->dat, ticket->length);
return(rem);

View File

@ -1,14 +0,0 @@
--- gnats/npr-addr.c.orig Tue Sep 21 17:18:39 1999
+++ gnats/npr-addr.c Wed Jul 2 13:23:13 2003
@@ -65,10 +65,9 @@ main (argc, argv)
int argc;
char **argv;
{
- Responsible *r;
int optc;
int full = 0, strict = 0;
- char *address, *name, *fname = (char *)NULL;
+ char *name;
char *user = "anonymous", *passwd = "guest";
outfp = stdout;

View File

@ -1,14 +0,0 @@
--- gnats/npr-edit.c.orig Tue Sep 21 17:18:39 1999
+++ gnats/npr-edit.c Wed Jul 2 13:23:13 2003
@@ -92,8 +92,9 @@ int
receive_list (cmd, suff)
char *cmd, *suff;
{
- char *s = (char *) xmalloc (strlen (outname) + 5);
- sprintf (s, "%s%s", outname, suff);
+ size_t len = strlen (outname) + 5;
+ char *s = (char *) xmalloc (len);
+ snprintf (s, len, "%s%s", outname, suff);
outfp = fopen (s, "w");
if (outfp == (FILE *)NULL)
{

View File

@ -1,15 +0,0 @@
--- gnats/nquery-pr.c.orig Tue Sep 21 17:18:39 1999
+++ gnats/nquery-pr.c Wed Jul 2 13:23:13 2003
@@ -444,10 +444,10 @@ ask_about (info, args)
cmd = "QURY";
buf = (char *) xmalloc (current);
- strcpy (buf, cmd);
+ strlcpy (buf, cmd, current);
while (args[i])
{
- sprintf (buf, "%s %s", buf, args[i]);
+ snprintf (buf, current, "%s %s", buf, args[i]);
len += strlen (args[i++]) + 1;
if (args[i] == NULL)
break;

View File

@ -1,14 +0,0 @@
--- gnats/pr-addr.c.orig Wed Nov 25 07:15:11 1998
+++ gnats/pr-addr.c Wed Jul 2 13:23:13 2003
@@ -48,10 +48,9 @@ main (argc, argv)
int argc;
char **argv;
{
- Responsible *r;
int option;
int full = 0, strict = 0;
- char *address, *name, *fname = (char *)NULL;
+ char *address, *name;
extern char *basename ();
program_name = (char *) basename (argv[0]);

View File

@ -1,11 +0,0 @@
--- gnats/pr-stat.c.orig Wed Nov 25 07:15:15 1998
+++ gnats/pr-stat.c Wed Jul 2 13:23:13 2003
@@ -148,7 +148,7 @@ do_category (c)
if ((strcmp (i->category, c) == 0)
&& (check_state_type (i->state, "closed")))
{
- sprintf (path, "%s/%s", c, i->number);
+ snprintf (path, PATH_MAX, "%s/%s", c, i->number);
do_stat (path);
}

View File

@ -1,90 +0,0 @@
--- gnats/pr.c.orig Wed Mar 3 01:18:54 1999
+++ gnats/pr.c Fri Dec 28 18:00:24 2007
@@ -205,7 +205,7 @@ read_pr (fp, prune)
u = unformatted + unformatted_len;
}
- strcat (u, pr[UNFORMATTED].value);
+ strlcat (u, pr[UNFORMATTED].value, unformatted + unformatted_size - u);
xfree (pr[UNFORMATTED].value);
}
@@ -293,14 +293,14 @@ write_pr (fp, string)
{
if (pr[string].datatype == MultiText)
{
- sprintf (fmt, "%%s%s", ret);
+ snprintf (fmt, sizeof(fmt), "%%s%s", ret);
fprintf (fp, fmt, pr[string].name, pr[string].value);
write_multitext (fp, pr[i].value);
MAYBE_NL(pr[string].value);
}
else
{
- sprintf (fmt, "%%-16s %%s%s", ret);
+ snprintf (fmt, sizeof(fmt), "%%-16s %%s%s", ret);
fprintf (fp, fmt, pr[string].name, pr[string].value);
}
}
@@ -338,7 +338,7 @@ write_pr_from_index (fp, name, value)
char fmt[10], *t;
time_t time;
- sprintf (fmt, "%%-16s %%s%s", ret);
+ snprintf (fmt, sizeof(fmt), "%%-16s %%s%s", ret);
if (pr[name].datatype == Date)
{
@@ -367,9 +367,9 @@ get_pr_enum_field (filename, default_value)
int len = 0, capacity = 80;
int meaningful_line;
FILE *fp;
- char c;
+ int c;
- sprintf (path, "%s/gnats-adm/%s", gnats_root, filename);
+ snprintf (path, PATH_MAX, "%s/gnats-adm/%s", gnats_root, filename);
fp = fopen (path, "r");
if (fp == NULL)
@@ -531,7 +531,7 @@ get_final_enum_value (list_str, default_value)
char *default_value;
{
char *res = NULL;
- char *tmp, *end;
+ char *tmp;
if (list_str == NULL)
return default_value;
@@ -751,9 +751,9 @@ check_enum_types (check)
{
if (check)
{
- char *msg = (char *) xmalloc (100 + strlen (pr[i].value)
- + strlen (pr[i].name)
- + strlen (pr[i].default_value));
+ size_t len = 100 + strlen (pr[i].value) + strlen (pr[i].name)
+ + strlen (pr[i].default_value);
+ char *msg = (char *) xmalloc (len);
if (bad_enums == NULL)
bad_enums = bad_enums_end
= (struct bad_enum *) xmalloc (sizeof (struct bad_enum));
@@ -765,15 +765,15 @@ check_enum_types (check)
}
if (check == 1)
- sprintf (msg,
+ snprintf (msg, len,
"\tNote: There was a bad value `%s' for the field `%s'.\n\tIt was set to the default value of `%s'.\n",
pr[i].value, pr[i].name, pr[i].default_value);
else if (check == 2)
{
if (is_daemon)
- sprintf (msg, "%s %s", pr[i].name, pr[i].value);
+ snprintf (msg, len, "%s %s", pr[i].name, pr[i].value);
else
- sprintf (msg, "%s %s\n", pr[i].name, pr[i].value);
+ snprintf (msg, len, "%s %s\n", pr[i].name, pr[i].value);
}
bad_enums_end->msg = msg;

View File

@ -1,21 +0,0 @@
--- gnats/query-pr.c.orig Tue Sep 21 17:18:39 1999
+++ gnats/query-pr.c Wed Jul 2 13:23:13 2003
@@ -92,7 +92,6 @@ query_pr (p, s)
char *p;
Index *s;
{
- char *path;
Index *i;
int opened, found = 0;
@@ -112,8 +111,8 @@ query_pr (p, s)
char pat[40], *n;
if ((n = (char *) strchr (p, '/')) != NULL) /* Remove the category */
p = ++n;
- strcpy (pat, p);
- strcat (pat, "\\'");
+ strlcpy (pat, p, sizeof(pat));
+ strlcat (pat, "\\'", sizeof(pat));
for (i = index_chain; i ; i = i->next)
if (regcmp (pat, i->number) == 0)

View File

@ -1,93 +0,0 @@
--- gnats/query.c.orig Wed Nov 25 07:15:19 1998
+++ gnats/query.c Wed Jul 2 13:23:13 2003
@@ -147,7 +147,7 @@ make_path (c, n)
{
char *path = (char *) xmalloc (PATH_MAX);
- sprintf (path, "%s/%s/%s", gnats_root, c, n);
+ snprintf (path, PATH_MAX, "%s/%s/%s", gnats_root, c, n);
return path;
}
@@ -203,7 +203,7 @@ regcmp (pat, match)
switch (r.i)
{
case -2:
- fprintf (stderr, "%s: warning: re_match died with pattern %s and string $s\n",
+ fprintf (stderr, "%s: warning: re_match died with pattern %s and string %s\n",
program_name, pat, match);
/*FALLTHRU*/
case -1:
@@ -251,7 +251,7 @@ regfind (pat, match)
switch (r.i)
{
case -2:
- fprintf (stderr, "%s: warning: re_match died with pattern %s and string $s\n",
+ fprintf (stderr, "%s: warning: re_match died with pattern %s and string %s\n",
program_name, pat, match);
/*FALLTHRU*/
case -1:
@@ -301,8 +301,6 @@ pr_matches (s, i, opened)
Index *i;
int *opened;
{
- int status;
-
*opened = 0;
if (skip_closed && check_state_type (i->state, "closed"))
@@ -343,7 +341,7 @@ pr_matches (s, i, opened)
int val = 0;
char *path = make_path (i->category, i->number);
- if (val = get_pr (path, i->number, quiet))
+ if ((val = get_pr (path, i->number, quiet)))
*opened = 1;
xfree (path);
@@ -490,15 +488,13 @@ print_pr (path, p, opened, i)
{
char *t, *q, *tempstr;
- tempstr = (char *) xmalloc (strlen (i->synopsis) + 1);
- strcpy (tempstr, i->synopsis);
+ tempstr = xstrdup(i->synopsis);
fprintf (outfile, "%-8.8s|%-16.16s|%-128.128s|%-3.3s|",
i->number, i->category, disbar (tempstr), i->confidential);
xfree (tempstr);
/* Trim `foo (Full Foo)' to just `foo'. */
- tempstr = (char *) xmalloc (strlen (i->responsible) + 1);
- strcpy (tempstr, i->responsible);
+ tempstr = xstrdup(i->responsible);
q = (char *) strchr (tempstr, ' ');
if (q != NULL)
*q = '\0';
@@ -550,15 +546,13 @@ print_pr (path, p, opened, i)
{
char *t, *q, *tempstr;
- tempstr = (char *) xmalloc (strlen (i->synopsis) + 1);
- strcpy (tempstr, i->synopsis);
+ tempstr = xstrdup(i->synopsis);
fprintf (outfile, "%s|%s|%s|%s|",
i->number, i->category, disbar (tempstr), i->confidential);
xfree (tempstr);
/* Trim `foo (Full Foo)' to just `foo'. */
- tempstr = (char *) xmalloc (strlen (i->responsible) + 1);
- strcpy (tempstr, i->responsible);
+ tempstr = xstrdup(i->responsible);
q = (char *) strchr (tempstr, ' ');
if (q != NULL)
*q = '\0';
@@ -611,8 +605,7 @@ print_pr (path, p, opened, i)
char *q, *tempstr;
/* Trim `foo (Full Foo)' to just `foo'. */
- tempstr = (char *) xmalloc (strlen (i->responsible) + 1);
- strcpy (tempstr, i->responsible);
+ tempstr = xstrdup(i->responsible);
q = (char *) strchr (tempstr, ' ');
if (q != NULL)
*q = '\0';

View File

@ -1,135 +0,0 @@
--- gnats/queue-pr.c.orig Wed Nov 25 15:15:20 1998
+++ gnats/queue-pr.c Fri Jul 8 13:28:43 2011
@@ -78,9 +78,11 @@ fork_gnats (filename)
int pid; /* pid_t */
int status;
+ size_t len;
- safe_env[0] = (char *) xmalloc (5 + strlen (gnats_user) + 1);
- sprintf (safe_env[0], "USER=%s", gnats_user);
+ len = 5 + strlen (gnats_user) + 1;
+ safe_env[0] = (char *) xmalloc (len);
+ snprintf (safe_env[0], len, "USER=%s", gnats_user);
errno = 0;
pid = fork();
@@ -91,10 +93,11 @@ fork_gnats (filename)
{
char *gnats_bin;
int fd;
+ size_t len = strlen (bindir) + 9;
- gnats_bin = (char *) xmalloc (strlen (bindir) + 9);
- strcpy (gnats_bin, bindir);
- strcat (gnats_bin, "/file-pr");
+ gnats_bin = (char *) xmalloc (len);
+ strlcpy (gnats_bin, bindir, len);
+ strlcat (gnats_bin, "/file-pr", len);
if (! flag_debug)
{
@@ -114,14 +117,14 @@ fork_gnats (filename)
if (flag_debug)
{
if (execle (gnats_bin, "file-pr", "-f", filename,
- "-D", "-d", gnats_root, NULL, safe_env) < 0)
+ "-D", "-d", gnats_root, (char *)NULL, safe_env) < 0)
punt (1, "%s: execle of gnats failed: %s\n", program_name,
strerror (errno));
}
else
{
if (execle (gnats_bin, "file-pr", "-f", filename,
- "-d", gnats_root, NULL, safe_env) < 0)
+ "-d", gnats_root, (char *)NULL, safe_env) < 0)
punt (1, "%s: execle of gnats failed: %s\n", program_name,
strerror (errno));
}
@@ -204,9 +207,10 @@ run_gnats ()
}
else if (child_status == 2)
{
- char *name2 = xmalloc (strlen (files[i].name) + 2);
- strcpy (name2, ".");
- strcat (name2, files[i].name);
+ size_t len = strlen (files[i].name) + 2;
+ char *name2 = xmalloc (len);
+ strlcpy (name2, ".", len);
+ strlcat (name2, files[i].name, len);
rename (files[i].name, name2);
punt (0, "renamed `%s' to `%s' pending human intervention.\n",
files[i].name, name2);
@@ -226,13 +230,11 @@ drop_msg ()
{
int fd[2];
char *tmpdir;
- char *bug_file = (char *) xmalloc (PATH_MAX);
+ char bug_file[MAXPATHLEN];
int r; /* XXX ssize_t */
char *buf = (char *) xmalloc (MAXBSIZE);
char *base, *new_name;
-#ifndef HAVE_MKTEMP
- char name[L_tmpnam];
-#endif
+ size_t len;
if (queue_file)
{
@@ -247,18 +249,13 @@ drop_msg ()
tmpdir = getenv ("TMPDIR");
if (tmpdir == NULL)
tmpdir = "/tmp"; /* FIXME */
-#ifdef HAVE_MKTEMP
- sprintf (bug_file, "%s/gnatsXXXXXX", tmpdir);
- mktemp (bug_file);
-#else
- tmpnam (name);
- strcpy (bug_file, name);
-#endif
+
+ snprintf (bug_file, sizeof(bug_file), "%s/gnatsXXXXXX", tmpdir);
- fd[1] = open (bug_file, O_WRONLY|O_CREAT, 0664);
- if (fd[1] < 0)
+ if ((fd[1] = mkstemp (bug_file)) < 0)
punt (1, "%s: can't open queue file %s for writing: %s\n",
program_name, bug_file, strerror (errno));
+ fchmod (fd[1], 0644);
while ((r = read (fd[0], buf, MAXBSIZE)) > 0)
if (write (fd[1], buf, r) < 0)
@@ -283,8 +280,9 @@ drop_msg ()
errno = 0;
base = basename (bug_file);
- new_name = (char *) xmalloc (strlen (queue_dir) + 1 + strlen (bug_file) + 1);
- sprintf (new_name, "%s/%s", queue_dir, base);
+ len = strlen (queue_dir) + 1 + strlen (bug_file) + 1;
+ new_name = (char *) xmalloc (len);
+ snprintf (new_name, len, "%s/%s", queue_dir, base);
if (rename (bug_file, new_name) < 0)
{
if (errno != EXDEV)
@@ -308,6 +306,7 @@ main (argc, argv)
char **argv;
{
int optc;
+ size_t len;
program_name = basename (argv[0]);
@@ -372,10 +371,9 @@ main (argc, argv)
program_name);
exit (1);
}
- queue_dir = (char *) xmalloc (strlen (gnats_root)
- + strlen ("/gnats-queue")
- + 1 /* null char */);
- sprintf (queue_dir, "%s/gnats-queue", gnats_root);
+ len = strlen (gnats_root) + strlen ("/gnats-queue") + 1 /* null char */;
+ queue_dir = (char *) xmalloc (len);
+ snprintf (queue_dir, len, "%s/gnats-queue", gnats_root);
if (queue_msg)
drop_msg ();

View File

@ -1,47 +0,0 @@
--- gnats/regex.c.orig Thu Nov 5 20:54:10 1998
+++ gnats/regex.c Fri Dec 28 18:00:24 2007
@@ -1623,11 +1623,12 @@ regex_compile (pattern, size, syntax, bufp)
case ')':
if (syntax & RE_NO_BK_PARENS) goto normal_backslash;
- if (COMPILE_STACK_EMPTY)
+ if (COMPILE_STACK_EMPTY) {
if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
goto normal_backslash;
else
return REG_ERPAREN;
+ }
handle_close:
if (fixup_alt_jump)
@@ -1643,11 +1644,12 @@ regex_compile (pattern, size, syntax, bufp)
}
/* See similar code for backslashed left paren above. */
- if (COMPILE_STACK_EMPTY)
+ if (COMPILE_STACK_EMPTY) {
if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
goto normal_char;
else
return REG_ERPAREN;
+ }
/* Since we just checked for an empty stack above, this
``can't happen''. */
@@ -4903,15 +4905,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
msg_size = strlen (msg) + 1; /* Includes the null. */
if (errbuf_size != 0)
- {
- if (msg_size > errbuf_size)
- {
- strncpy (errbuf, msg, errbuf_size - 1);
- errbuf[errbuf_size - 1] = 0;
- }
- else
- strcpy (errbuf, msg);
- }
+ strlcpy (errbuf, msg, errbuf_size);
return msg_size;
}

View File

@ -1,11 +0,0 @@
--- libiberty/Makefile.in.orig Thu Nov 5 20:54:14 1998
+++ libiberty/Makefile.in Fri Dec 28 18:00:24 2007
@@ -246,7 +246,7 @@ dummy.o: $(srcdir)/dummy.c $(srcdir)/functions.def
$(CC) -c $(CFLAGS) -I. -I$(INCDIR) $(HDEFINES) $(srcdir)/dummy.c 2>/dev/null
errors: dummy.o $(EXTRA_OFILES)
- -($(ERRORS_CC) -o dummy $(CFLAGS) $(LDFLAGS) $(ERRORS_LDFLAGS) dummy.o $(EXTRA_OFILES) $(LOADLIBES)) >errors 2>&1 || true
+ -($(ERRORS_CC) -o dummy $(CFLAGS) $(LDFLAGS) $(ERRORS_LDFLAGS) dummy.o $(EXTRA_OFILES) $(LOADLIBES)) | grep -v warning >errors 2>&1 || true
# required-list is used when building a shared bfd/opcodes/libiberty library.
required-list: Makefile

View File

@ -1,12 +0,0 @@
--- libiberty/dummy.c.orig Thu Nov 5 12:54:15 1998
+++ libiberty/dummy.c Wed Nov 30 14:35:38 2005
@@ -2,7 +2,8 @@
#ifdef __STDC__
#include <stddef.h>
-#define clock_t unsigned long
+#include <stdarg.h>
+#include <stdio.h>
#define DEF(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS);
#define DEFFUNC(NAME, RETURN_TYPE, ARGLIST, ARGS) extern RETURN_TYPE NAME (ARGS);
#else

View File

@ -1,71 +0,0 @@
Index: libiberty/functions.def
--- libiberty/functions.def.orig
+++ libiberty/functions.def
@@ -10,15 +10,15 @@
*/
DEF(atexit, int, (f), void (*f)())
-DEF(bcmp, int, (s1, s2, length), char *s1 AND char *s2 AND int length )
-DEF(bcopy, void, (s1, s2, length), char *s1 AND char *s2 AND int length )
-DEF(bzero, void, (s, length), char *s AND int length)
+DEF(bcmp, int, (s1, s2, length), PTR s1 AND PTR s2 AND size_t length )
+DEF(bcopy, void, (s1, s2, length), PTR s1 AND PTR s2 AND size_t length )
+DEF(bzero, void, (s, length), PTR s AND size_t length)
DEF(clock, clock_t, (), NOTHING)
DEF(getopt, int, (argc, argv, optstring),
int argc AND char **argv AND CONST char *optstring)
DEF(getpagesize, int , (), NOTHING)
DEF(getcwd, char*, (buf, len), char *buf AND int len)
-DEF(index, char*, (s, c), char *s AND int c)
+DEF(index, char*, (s, c), CONST char *s AND int c)
DEF(insque, void, (), NOTHING)
DEF(memchr, PTR, (s, c, length), CONST PTR s AND int c AND size_t length)
DEF(memcmp, int, (s1, s2, length),
@@ -27,26 +27,26 @@ DEF(memcpy, PTR, (s1, s2, length), PTR s1 AND CONST PT
DEF(memmove, PTR, (s1, s2, length), PTR s1 AND CONST PTR s2 AND size_t length)
DEF(memset, PTR, (s, val, length), PTR s AND int val AND size_t length )
DEF(random, long int, (), NOTHING)
-DEF(rename, int, (f, t), char *f AND char *t)
-DEF(rindex, char*, (s, c), char *s AND int c)
-DEF(strcasecmp, int, (s1, s2), char *s1 AND char *s2)
-DEF(strncasecmp, int, (s1, s2, n), char *s1 AND char *s2 AND int n)
+DEF(rename, int, (f, t), CONST char *f AND CONST char *t)
+DEF(rindex, char*, (s, c), CONST char *s AND int c)
+DEF(strcasecmp, int, (s1, s2), CONST char *s1 AND CONST char *s2)
+DEF(strncasecmp, int, (s1, s2, n), CONST char *s1 AND CONST char *s2 AND size_t n)
DEF(strchr, char*, (s, c), CONST char *s AND int c)
DEF(strdup, char*, (s1), char * s1)
DEF(strrchr, char*, (s, c), CONST char *s AND int c)
-DEF(strstr, char*, (), NOTHING)
-DEF(strtod, double, (), NOTHING)
-DEF(strtol, long, (), NOTHING)
-DEF(strtoul, unsigned long, (), NOTHING)
+DEF(strstr, char*, (s1, s2), CONST char *s1 AND CONST char *s2)
+DEF(strtod, double, (n, end), CONST char *n AND char **end)
+DEF(strtol, long, (n, end, b), CONST char *n AND char **end AND int b)
+DEF(strtoul, unsigned long, (n, end, b), CONST char *n AND char **end AND int b)
DEF(tmpnam, char *, (s), char * s)
DEF(vfork, int, (), NOTHING)
-DEF(vfprintf, int, (), NOTHING)
-DEF(vprintf, int, (), NOTHING)
-DEF(vsprintf, int, (), NOTHING)
+DEF(vfprintf, int, (f, fmt, ap), FILE *f AND CONST char *fmt AND va_list ap)
+DEF(vprintf, int, (fmt, ap), CONST char *fmt AND va_list ap)
+DEF(vsprintf, int, (s, fmt, ap), char *s AND CONST char *fmt AND va_list ap)
DEF(sigsetmask, int, (), NOTHING)
DEF(alloca, PTR, (size), size_t size)
DEF(waitpid, int, (pid, statp, opts), int pid AND int* statp AND int opts )
-DEF(vasprintf, int, (), NOTHING)
+DEF(vasprintf, int, (p, fmt, ap), char **p AND CONST char *fmt AND va_list ap)
/* List of global variables that we want to look for in the host
environment, and to generate an entry NEED_<variable> in config.h
@@ -62,7 +62,7 @@ DEFVAR(sys_siglist, char *sys_siglist[], sys_siglist[0
environment, and to generate an entry NEED_<funcname> in config.h
if they are not found. */
-DEFFUNC(strerror, char*, (), NOTHING)
+DEFFUNC(strerror, char*, (err), int err)
DEFFUNC(psignal, void, (signo, message), unsigned signo AND char *message)
DEFFUNC(basename, char *, (name), CONST char *name)
DEFFUNC(on_exit, void, (f, arg), void (*f)() AND char *arg)

View File

@ -1,23 +0,0 @@
--- send-pr/Makefile.in.orig Tue May 8 19:22:21 2001
+++ send-pr/Makefile.in Fri Jul 8 13:28:43 2011
@@ -174,10 +174,7 @@ install-gnats-arch-dep: install-norm-arch-dep
install-norm all-gnats: install-norm-arch-indep install-norm-arch-dep
install-norm-arch-indep:
- $(INSTALL_DATA) send-pr.el $(lispdir)/send-pr.el
- if [ -f send-pr.elc ]; then \
- $(INSTALL_DATA) send-pr.elc $(lispdir)/send-pr.elc; \
- else true; fi
+ true
install-norm-arch-dep:
$(INSTALL_SCRIPT) send-pr $(bindir)/send-pr
@@ -190,7 +187,7 @@ install-categories:
install-gnats-dist:
$(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gnats/dist
- @if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
+ @if false; then \
echo "chown $(GNATS_USER) $(datadir)/gnats/dist" ; \
chown $(GNATS_USER) $(datadir)/gnats/dist ; \
else \

View File

@ -1,14 +0,0 @@
GNATS is a bug-tracking tool designed for use at a central support
site. Software users who experience problems use electronic mail
to communicate these problems to the maintainers of that software;
GNATS partially automates the tracking of these problems by:
- organizing problem reports into a database and notifying responsible
parties of suspected bugs;
- allowing support personnel and their managers to edit, query and
report on accumulated bugs; and
- providing a reliable archive of problems with a given program and a
history of the life of the program by preserving its reported
problems and their subsequent solutions.

View File

@ -1,95 +0,0 @@
@newuser _gnats:501:daemon::GNATS database owner:${PREFIX}/share/gnats:/sbin/nologin
bin/edit-pr
@bin bin/getclose
bin/install-sid
bin/nedit-pr
@bin bin/nquery-pr
@bin bin/query-pr
bin/send-pr
@bin bin/sub-type
@info info/gnats.info
@info info/send-pr.info
@info info/standards.info
lib/gnatsweb
libdata/perl5/site_perl/gnats.pm
libexec/gnats/
libexec/gnats/at-pr
libexec/gnats/check-db
libexec/gnats/delete-pr
@bin libexec/gnats/file-pr
@mode 4555
@owner _gnats
@bin libexec/gnats/gen-index
@mode
@owner
libexec/gnats/gnats-edit-pr
@bin libexec/gnats/gnatsd
libexec/gnats/mail-query
libexec/gnats/mkcat
libexec/gnats/mkdist
@bin libexec/gnats/npr-addr
@bin libexec/gnats/npr-edit
@bin libexec/gnats/pr-addr
@bin libexec/gnats/pr-age
@mode 4555
@owner _gnats
@bin libexec/gnats/pr-edit
@mode
@owner
@bin libexec/gnats/pr-mail
@mode 4555
@owner _gnats
@bin libexec/gnats/queue-pr
@mode
@owner
libexec/gnats/rmcat
@man man/man1/edit-pr.1
@man man/man1/query-pr.1
@man man/man1/send-pr.1
@man man/man7/gnats.7
@man man/man8/file-pr.8
@man man/man8/gen-index.8
@man man/man8/mkcat.8
@man man/man8/mkdist.8
@man man/man8/queue-pr.8
@man man/man8/rmcat.8
share/doc/pkg-readmes/${PKGSTEM}
share/examples/gnats/
share/examples/gnats/gnats-db.conf
@sample ${SYSCONFDIR}/gnats-db.conf
@owner _gnats
share/gnats/
share/gnats/cygnus
share/gnats/dist/
share/gnats/dist/COPYING
share/gnats/dist/INSTALL
share/gnats/dist/MANIFEST
share/gnats/dist/README
share/gnats/dist/categ.texi
share/gnats/dist/fields.texi
share/gnats/dist/install-sid.sh
share/gnats/dist/s-usage.texi
share/gnats/dist/send-pr-el.in
share/gnats/dist/send-pr.1
share/gnats/dist/send-pr.sh
share/gnats/dist/send-pr.texi
share/gnats/dist/states.texi
share/gnats/dist/texinfo.tex
share/gnats/dist/version.texi
share/gnats/gnats-db/
share/gnats/gnats-db/gnats-adm/
share/gnats/gnats-db/gnats-adm/addresses
share/gnats/gnats-db/gnats-adm/categories
share/gnats/gnats-db/gnats-adm/classes
share/gnats/gnats-db/gnats-adm/config
@mode 0600
share/gnats/gnats-db/gnats-adm/gnatsd.access
@mode
share/gnats/gnats-db/gnats-adm/gnatsd.conf
share/gnats/gnats-db/gnats-adm/locks/
share/gnats/gnats-db/gnats-adm/responsible
share/gnats/gnats-db/gnats-adm/states
share/gnats/gnats-db/gnats-adm/submitters
share/gnats/gnats-db/gnats-queue/
share/gnats/gnats-db/pending/
@extraunexec crontab -u _gnats -r > /dev/null 2>&1

View File

@ -1,50 +0,0 @@
+-----------------------------------------------------------------------
| Running ${PKGSTEM} on OpenBSD
+-----------------------------------------------------------------------
Post-installation steps
=======================
1. Add the following to /etc/inetd.conf:
support stream tcp nowait _gnats ${TRUEPREFIX}/libexec/gnats/gnatsd gnatsd
inetd(8) must be reloaded (or started). To enable it at boot, the
following line needs to be added to rc.conf.local(8):
inetd_flags=
2. Edit the config files in ${TRUEPREFIX}/share/gnats/gnats-db/gnats-adm
(see the GNATS info documentation and online HTML documentation)
to your liking, then run (as root):
su -m _gnats -c '${TRUEPREFIX}/libexec/gnats/mkcat --directory=${TRUEPREFIX}/share/gnats/gnats-db'
3. As root, do
crontab -e -u _gnats
and add the following entry:
0,10,20,30,40,50 * * * * ${TRUEPREFIX}/libexec/gnats/queue-pr --run
4. Add the following lines to /etc/mail/aliases and run 'newaliases':
# GNATS support
gnats-admin: root
bugs: "|${TRUEPREFIX}/libexec/gnats/queue-pr -q"
monkey-gnats: bugs
where 'monkey' is replaced with the configured value of GNATS_SITE in
${TRUEPREFIX}/share/gnats/gnats-db/gnats-adm/config.
5. If you want to run gnatsweb, add
127.0.0.1:view:
to ${TRUEPREFIX}/share/gnats/gnats-db/gnats-adm/gnatsd.access. You may
increase privileges for all users of gnatsweb by changing 'view' to
'edit', or for individual users by adding rules to
${TRUEPREFIX}/share/gnats/gnats-db/gnats-adm/gnatsd.access.
References
==========
Additional documentation at http://sunsite.ualberta.ca/Documentation/Gnu/gnats-3.113/

View File

@ -3,7 +3,7 @@ CATEGORIES = devel databases
DISTFILES =
# API.rev
PKGNAME = quirks-6.8
PKGNAME = quirks-6.9
PKG_ARCH = *
MAINTAINER = Marc Espie <espie@openbsd.org>

View File

@ -1,7 +1,7 @@
#! /usr/bin/perl
# ex:ts=8 sw=4:
# $OpenBSD: Quirks.pm,v 1.1401 2022/06/10 07:55:51 sthen Exp $
# $OpenBSD: Quirks.pm,v 1.1402 2022/07/01 06:45:52 sthen Exp $
#
# Copyright (c) 2009 Marc Espie <espie@openbsd.org>
#
@ -1677,6 +1677,7 @@ setup_obsolete_reason(
6 => 'amtk',
3 => 'lumail',
3 => 'kalarmcal',
5 => 'gnats',
);
# though it's not yet used, these should be pkgnames, so that eventually