remove the very outdated GNATS port
This commit is contained in:
parent
ac8fda8251
commit
e2dcd7f2b4
|
@ -6,7 +6,6 @@
|
|||
SUBDIR += evolution-data-server
|
||||
SUBDIR += freetds
|
||||
SUBDIR += gdbm
|
||||
SUBDIR += gnats
|
||||
SUBDIR += influxdb
|
||||
SUBDIR += iodbc
|
||||
SUBDIR += jxplorer
|
||||
|
|
|
@ -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>
|
|
@ -1,2 +0,0 @@
|
|||
SHA256 (gnats-3.113.1.tar.gz) = wP8TM17T+Mxw4vzUgqjcjH4/4j0a7dVTVaFuc5S6OME=
|
||||
SIZE (gnats-3.113.1.tar.gz) = 1120985
|
|
@ -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
|
|
@ -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);
|
||||
|
|
@ -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)
|
|
@ -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);
|
||||
}
|
|
@ -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;
|
|
@ -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);
|
|
@ -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 ();
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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]);
|
|
@ -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;
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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++;
|
||||
}
|
||||
}
|
|
@ -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));
|
|
@ -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));
|
|
@ -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;
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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 */
|
|
@ -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');
|
|
@ -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);
|
|
@ -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;
|
|
@ -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)
|
||||
{
|
|
@ -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;
|
|
@ -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]);
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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;
|
|
@ -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)
|
|
@ -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';
|
|
@ -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 ();
|
|
@ -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;
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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)
|
|
@ -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 \
|
|
@ -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.
|
|
@ -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
|
|
@ -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/
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user