summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Holzer <mholzer@gentoo.org>2004-04-13 20:14:30 +0000
committerMartin Holzer <mholzer@gentoo.org>2004-04-13 20:14:30 +0000
commit317f2f92d1a8a444d0811798e9dba9bc4aa51480 (patch)
treefde13ca50495d5108864db84264c340784046be0 /net-misc/whois
parent~amd64 (Manifest recommit) (diff)
downloadgentoo-2-317f2f92d1a8a444d0811798e9dba9bc4aa51480.tar.gz
gentoo-2-317f2f92d1a8a444d0811798e9dba9bc4aa51480.tar.bz2
gentoo-2-317f2f92d1a8a444d0811798e9dba9bc4aa51480.zip
Version bumped. Closes 47532
Diffstat (limited to 'net-misc/whois')
-rw-r--r--net-misc/whois/ChangeLog8
-rw-r--r--net-misc/whois/Manifest4
-rw-r--r--net-misc/whois/files/digest-whois-4.6.131
-rw-r--r--net-misc/whois/files/whois-4.6.13-gentoo-security.patch139
-rw-r--r--net-misc/whois/whois-4.6.13.ebuild51
5 files changed, 201 insertions, 2 deletions
diff --git a/net-misc/whois/ChangeLog b/net-misc/whois/ChangeLog
index e374550bb3bd..5b48ac7a4d6d 100644
--- a/net-misc/whois/ChangeLog
+++ b/net-misc/whois/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-misc/whois
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/whois/ChangeLog,v 1.32 2004/01/15 05:36:05 avenj Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/whois/ChangeLog,v 1.33 2004/04/13 20:14:30 mholzer Exp $
+
+*whois-4.6.13 (13 Apr 2004)
+
+ 13 Apr 2004; Martin Holzer <mholzer@gentoo.org> whois-4.6.13.ebuild,
+ files/whois-4.6.13-gentoo-security.patch:
+ Version bumped. Closes 47532
15 Jan 2004; Jon Portnoy <avenj@gentoo.org> whois-4.6.9.ebuild :
Stable on AMD64.
diff --git a/net-misc/whois/Manifest b/net-misc/whois/Manifest
index e1a146a1a477..4360d8af14af 100644
--- a/net-misc/whois/Manifest
+++ b/net-misc/whois/Manifest
@@ -1,7 +1,9 @@
MD5 f7401bbeab53b5ad7319b16e365ce19d ChangeLog 5382
MD5 040bc432c18861f9c840df3fbeb43126 whois-4.6.6-r2.ebuild 1173
MD5 b00515de0728029b34d7e96989d025eb whois-4.6.9.ebuild 1195
+MD5 b00515de0728029b34d7e96989d025eb whois-4.6.13.ebuild 1195
MD5 9d6a7c447cdafb5e2b97f86d5c6e9789 files/digest-whois-4.6.6-r2 62
-MD5 5b0f12c560d041d865109694432ffd93 files/whois-4.6.6-gentoo-security-2.patch 5366
MD5 002b59068a31c05cfe61df2c31d655e7 files/digest-whois-4.6.9 62
+MD5 5b0f12c560d041d865109694432ffd93 files/whois-4.6.6-gentoo-security-2.patch 5366
MD5 5963b760548bb1f580ee3ac53ac1eb19 files/whois-4.6.9-gentoo-security.patch 4712
+MD5 405e144ea2a2c14c0b066e42461ee8f4 files/digest-whois-4.6.13 63
diff --git a/net-misc/whois/files/digest-whois-4.6.13 b/net-misc/whois/files/digest-whois-4.6.13
new file mode 100644
index 000000000000..31f5104e8ce6
--- /dev/null
+++ b/net-misc/whois/files/digest-whois-4.6.13
@@ -0,0 +1 @@
+MD5 66068605f636ce79a017f1bc770251a3 whois_4.6.13.tar.gz 50400
diff --git a/net-misc/whois/files/whois-4.6.13-gentoo-security.patch b/net-misc/whois/files/whois-4.6.13-gentoo-security.patch
new file mode 100644
index 000000000000..2140cc525fa1
--- /dev/null
+++ b/net-misc/whois/files/whois-4.6.13-gentoo-security.patch
@@ -0,0 +1,139 @@
+--- whois.c.org 2004-04-13 21:31:16.000000000 +0200
++++ whois.c 2004-04-13 21:49:57.000000000 +0200
+@@ -76,7 +76,7 @@
+ /* RIPE flags */
+ if (strchr(ripeflags, ch)) {
+ for (p = fstring; *p; p++);
+- sprintf(p--, "-%c ", ch);
++ snprintf(p--, sizeof(fstring), "-%c ", ch);
+ continue;
+ }
+ if (strchr(ripeflagsp, ch)) {
+@@ -121,7 +121,7 @@
+ usage();
+
+ /* On some systems realloc only works on non-NULL buffers */
+- qstring = malloc(64);
++ qstring = xmalloc(64);
+ *qstring = '\0';
+
+ /* parse other parameters, if any */
+@@ -130,11 +130,11 @@
+
+ while (1) {
+ qslen += strlen(*argv) + 1 + 1;
+- qstring = realloc(qstring, qslen);
+- strcat(qstring, *argv++);
++ qstring = xrealloc(qstring, qslen);
++ strncat(qstring, *argv++, qslen-1);
+ if (argc == 1)
+ break;
+- strcat(qstring, " ");
++ strncat(qstring, " ", qslen);
+ argc--;
+ }
+ }
+@@ -422,8 +422,12 @@
+ char *buf;
+ int i, isripe = 0;
+
++ /* buflen was always 0 in original patch and buf was allocated
++ twice /Aye */
+ /* 64 bytes reserved for server-specific flags added later */
+- buf = malloc(strlen(flags) + strlen(query) + strlen(client_tag) + 64);
++ int buflen = strlen(flags) + strlen(query) + strlen(client_tag) + 64;
++ buf = xmalloc(buflen);
++
+ *buf = '\0';
+ for (i = 0; ripe_servers[i]; i++)
+ if (strcmp(server, ripe_servers[i]) == 0) {
+@@ -445,7 +449,7 @@
+ if (*flags) {
+ if (!isripe && strcmp(server, "whois.corenic.net") != 0)
+ puts(_("Warning: RIPE flags used with a traditional server."));
+- strcat(buf, flags);
++ strncat(buf, flags, buflen);
+ }
+
+ /* why, oh why DENIC had to make whois "user friendly"?
+@@ -453,20 +457,20 @@
+ */
+ if (isripe && strcmp(server, "whois.denic.de") == 0 && domcmp(query, ".de")
+ && !strchr(query, ' '))
+- sprintf(buf, "-T dn,ace -C US-ASCII %s", query);
++ snprintf(buf, buflen, "-T dn,ace -C US-ASCII %s", query);
+ else if (!isripe && (strcmp(server, "whois.nic.mil") == 0 ||
+ strcmp(server, "whois.nic.ad.jp") == 0) &&
+ strncasecmp(query, "AS", 2) == 0 && isasciidigit(query[2]))
+ /* FIXME: /e is not applied to .JP ASN */
+- sprintf(buf, "AS %s", query + 2); /* fix query for DDN */
++ snprintf(buf, buflen, "AS %s", query + 2); /* fix query for DDN */
+ else if (!isripe && strcmp(server, "whois.nic.ad.jp") == 0) {
+ char *lang = getenv("LANG"); /* not a perfect check, but... */
+ if (!lang || (strncmp(lang, "ja", 2) != 0))
+- sprintf(buf, "%s/e", query); /* ask for english text */
++ snprintf(buf, buflen, "%s/e", query); /* ask for english text */
+ else
+- strcat(buf, query);
++ strncat(buf, query, buflen);
+ } else
+- strcat(buf, query);
++ strncat(buf, query, buflen);
+ return buf;
+ }
+
+@@ -581,7 +585,7 @@
+ int hide = hide_discl;
+ int state = 0;
+
+- temp = malloc(strlen(query) + 1 + 2 + 1);
++ temp = xmalloc(strlen(query) + 1 + 2 + 1);
+ *temp = '=';
+ strcpy(temp + 1, query);
+ strcat(temp, "\r\n");
+@@ -599,7 +603,7 @@
+
+ for (p = buf; *p != ':'; p++); /* skip until colon */
+ for (p++; *p == ' '; p++); /* skip colon and spaces */
+- ret = malloc(strlen(p) + 1);
++ ret = xmalloc(strlen(p) + 1);
+ for (q = ret; *p != '\n' && *p != '\r' && *p != ' '; *q++ = *p++)
+ ; /*copy data*/
+ *q = '\0';
+@@ -847,6 +851,25 @@
+ exit(0);
+ }
+
++/* Memory allocation routines */
++void *xmalloc(size_t size)
++{
++ void *ptr;
++
++ if ((ptr = malloc(size)) == NULL)
++ err_sys("malloc");
++
++ return ptr;
++}
++
++void *xrealloc(void *ptr, size_t size)
++{
++ if ((ptr = realloc(ptr, size)) == NULL)
++ err_sys("realloc");
++
++ return ptr;
++}
++
+
+ /* Error routines */
+ void err_sys(const char *fmt, ...)
+--- whois.h.org 2004-04-13 21:50:35.000000000 +0200
++++ whois.h 2004-04-13 21:51:00.000000000 +0200
+@@ -32,6 +32,8 @@
+ void split_server_port(const char *const input, const char **server,
+ const char **port);
+
++void *xmalloc(size_t);
++void *xrealloc(void *, size_t);
+ void err_quit(const char *,...);
+ void err_sys(const char *,...);
+
diff --git a/net-misc/whois/whois-4.6.13.ebuild b/net-misc/whois/whois-4.6.13.ebuild
new file mode 100644
index 000000000000..2816fda70d3f
--- /dev/null
+++ b/net-misc/whois/whois-4.6.13.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/whois/whois-4.6.13.ebuild,v 1.1 2004/04/13 20:14:30 mholzer Exp $
+
+IUSE="nls"
+MY_P=${P/-/_}
+DESCRIPTION="improved Whois Client"
+SRC_URI="http://www.linux.it/~md/software/${MY_P}.tar.gz"
+HOMEPAGE="http://www.linux.it/~md/software/"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~sparc ~mips hppa ~ia64 ~alpha ~amd64"
+
+DEPEND=">=sys-apps/sed-4
+ >=dev-lang/perl-5"
+RDEPEND="virtual/glibc"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ sed -i -e "s/-O2/$CFLAGS/" Makefile
+
+ use nls && ( \
+ cd po
+ sed -i -e "s:/usr/bin/install:install:" Makefile
+ ) || ( \
+ sed -i -e "s:cd po.*::" Makefile
+ )
+
+ epatch ${FILESDIR}/${P}-gentoo-security.patch || die
+}
+
+src_compile() {
+ make || die
+ make mkpasswd || die
+}
+
+src_install() {
+ dodir /usr/bin
+ dodir /usr/share/man/man1
+ use nls && dodir /usr/share/locale
+ make BASEDIR=${D} prefix=/usr mandir=/usr/share/man install || die
+
+ dobin mkpasswd
+ doman mkpasswd.1
+ dodoc README whois.conf debian/changelog debian/copyright
+
+ einfo ""
+ einfo "The example whois.conf is located in /usr/doc/${P}"
+ einfo ""
+}